关于多态和重载
多态
- 什么是多态
多态是同一个行为具有多个不同表现形式或形态的能力。 - 多态存在三个条件
继承
重写
父类引用指向子类对象 - 体现
-
父类类型的引用 指向 子类的对象
Person p = new Teacher(); -
该引用只能调用父类中定义的属性或方法
-
如果子类中将父类的方法重写,那么调取方法后执行的结果是子类重写之后的那个结果
如果父类与子类有同名的属性 执行父类的属性
如果父类与子类有同名的方法 执行子类重写之后的方法 -
若想要调用子类中独有的成员
(强制类型转化) 造型 铸型(向上/向下转型)
造型时(强制向下转型时) 可能出现一个运行时异常
ClassCastException 造型 铸型 异常(不是同一个分支 不是继承关系)
如果想要避免造型的异常 可以用instanceof关键字来进行判断
对象 instanceof 类 (判断对象属不属于这个类 或者 这个类的子类)
重载
-
什么是重载
如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载。 具体说明如下:方法名相同 方法的参数类型,参数个不一样 方法的返回类型可以不相同 方法的修饰符可以不相同 main 方法也可以被重载
区别
1.利用方法重载 ------ 静态加载
静态加载是编译时加载的
2.利用多态 ------动态加载
动态加载是运行时加载的
动态绑定带来的最大好处是使程序的可扩展性达到了最好