学习java随笔第八篇:封装、继承、多态

java和c#一样都是面向对象的语言。

面向对象的语言有三大特征:封装、继承、多态

封装

 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。

学习java随笔第八篇:封装、继承、多态
class Person2
{
    private String name;
    public void setName(String name)
    {
            this.name=name;
    }
    public String getName()
    {
        return name;
    }
    
    private String sex;
    public void setSex(String sex)
    {
            this.sex=sex;
    }
    public String getSex()
    {
        return sex;
    }
    
    private int age;
    public void setAge(int age)
    {
            this.age=age;
    }
    public int getAge()
    {
        return age;
    }    
    
    private double height;
    public void setHeight(double height)
    {
        this.height=height;
    }
    public double getHeight()
    {
        return height;
    }    
}

public class Person1 {
    public static void main(String arges[])
    {
        Person2 p2=new Person2();
        p2.setName("小黄");
        p2.setSex("男");
        p2.setAge(20);
        p2.setHeight(1.70);
        System.out.println("姓名:"+p2.getName()+",性别:"+p2.getSex()+",年龄:"+p2.getAge()+",身高:"+p2.getHeight());
    }
}
学习java随笔第八篇:封装、继承、多态

学习java随笔第八篇:封装、继承、多态

继承

继承:发生在类与类之间,在已存在的类的基础之上进行继承,通过继承来共享父类的成员和方法,并加入新的方法。可以单继承,也可以多继承。

在Java中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此,子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且添加了特有功能方法。

学习java随笔第八篇:封装、继承、多态
class Father
{
    public String name;
    public int age;
    public String eye;
    public String height;
    public String cutis;
    //Father类的构造器
    public Father()
    {
        
    }
    
    public Father(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    //重写Object类中的toString方法
    /*public String toString()
    {
        String emp="姓名:"+name+",年龄:"+age;
        return emp;
    }*/
}

public class son extends Father
{
    public String spectacle_frame;
    public son()
    {
        
    }
    public son(String spectacle_frame)
    {
        this.spectacle_frame=spectacle_frame;
    }
    
    public void getMes()
    {
        System.out.println(spectacle_frame);
    }
    public static void main(String arges[])
    {
        Father f=new Father("Father",50);
        System.out.println(f);
        son s=new son("Blue");
        s.name="Tom";
        s.age=20;
        System.out.println(s);
        s.getMes();
    }
}
学习java随笔第八篇:封装、继承、多态
注释:重写Object类中的toString方法
学习java随笔第八篇:封装、继承、多态
取消注释:重写Object类中的toString方法
学习java随笔第八篇:封装、继承、多态

多态

 多态:接口的多种不同的实现方式即为多态,同一个实体同时具有多种形式。

学习java随笔第八篇:封装、继承、多态
class fruit
{
    public void getMes()
    {
        System.out.println("父类");
    }
}

class apple extends fruit
{
    public void getMes()
    {
        System.out.println("apple子类");
    }
}

class orange extends fruit
{
    public void getMes()
    {
        System.out.println("orange子类");
    }
}

public class racing_cycel {
    public void show(fruit f)
    {
        f.getMes();
    }
    
    public static void main(String arges[])
    {
        racing_cycel rc=new racing_cycel();
        fruit f=new fruit();
        apple a=new apple();
        orange o=new orange();
        
        rc.show(f);
        rc.show(a);
        rc.show(o);
    }
}
学习java随笔第八篇:封装、继承、多态

运行结果

学习java随笔第八篇:封装、继承、多态

学习java随笔第八篇:封装、继承、多态,布布扣,bubuko.com

学习java随笔第八篇:封装、继承、多态

上一篇:【javascript进阶】异常


下一篇:Python學習筆記 第一課 Basic Information of Python