韩顺平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)
- 动态参数
-
接口的多态
本文来自博客园,作者:紫英626,转载请注明原文链接:https://www.cnblogs.com/recorderM/p/15677820.html