韩顺平Java11(封装、继承、多态02)

方法重写(override)

  • 重写(override)和重载的比较(overload)

多态(polymorphic)

package test;

/**
 * @author 紫英
 * @version 1.0
 * @discription 随便写
 */
class Test {
    public static void main(String[] args) {
        Father father = new Son();//向上转型
        father.say();//I'm a son
        Son son = (Son) father;//向下转型
        System.out.println(son.fatherName);//father
        System.out.println(son.age);//12
    }
}

class Father {
    String fatherName = "father";
    public void say() {
        System.out.println("I'm father");
    }
}
class Son extends Father {
    int age = 12;
    @Override
    public void say() {
        System.out.println("I'm a son");
    }
}

多态的体现:

  • 方法的多态——重写和重载

  • 对象的多态(重要!!!)

向上转型

 

 按父类的类型来编译,具体运行的时候看的是子类类型

向下转型

 属性没有重写,属性的值看编译类型

 

  • 动态绑定(dynamic banding)

  • 动态参数

 

  • 接口的多态

韩顺平Java——接口

posted @ 2021-12-12 00:25  紫英626  阅读(43)  评论(0编辑  收藏  举报

紫英