封装 多态 看这一篇文章就够了

封装:

对象代表什么 就得封装对应的数据 并提供数据对应的方法

在一个类中定义了一个方法 在其它类中可以调用 这就是封装

多态

同类型的对象 表现不同的是形态。

多态的表现形式:父类类型 对象名=子类对象。

public class Test {
    public static void main(String[] args) {
        Son s1=new Son();s1.setAge(10);
        s1.getAge();
        regester(s1);
    }

//这样再传regester方法的所有参数时 就可以传Person子类的所有方法
//
    public static void regester(Person p){
        p.show();
    }
}

 class Person {
    int age =10;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public void show(){
        System.out.println("Person" +
                "");
    }
}


 class Son extends Person{
    @Override
    public void show() {
        super.show();
    }
}

多态调用成员的特点:

1  变量调用:编译看左边  运行也看左边

2  方法的调用: 编译看左边 运行看右边

public class Test {
    public static void main(String[] args) {
        //用多态创建 对象
        //Fu f=new Zi();
        Animal an=new Dog();
        //调用变量 看左边 运行也看左边
        //编译看左边 如果父类代码中没有这个变量 就会编译失败
        //运行看左边:实际打印的值是父类中的值
        System.out.println(an.name);//动物
        //调用方法 编译看左边 运行看右边
        //编译看左边 如果父类代码中没有这个方法 就会编译失败
        //运行看左边:实际调用的是子类的方法
        an.show();//子类的方法
    }

}

 class Animal {
    String name ="动物";

    public void show(){
        System.out.println("动物");
    }
}


 class Dog extends Animal{
    String name ="狗";
    @Override
    public void show() {
        System.out.println("狗");
    }
}

多态的优势

定义方法时 使用父类型作为参数 可以接受所有子类对象

不可以调用 子类的方法  只可调用父类的方法

你可能感兴趣的:(java,开发语言)