多态?盘
事物在运行过程中存在不同的状态,多态存在三前提
1、要有继承关系
2、子类要重写父类的方法
3、父类引用指向子类
多态成员访问的特定:(编译时多态、运行时多态)
成员变量
编译看左边(父类),运行时看左边(父类)
成员方法
编译看左边,运行看右边(子类)。动态绑定
静态方法
编译看左边(父类),运行时看左边(父类)---静态和类相关,算不上重写,所以访问还是左边的
只有非静态的成员方法,编译看左边,运行看右边,即多态不能使用子类特定的属性和方法(多态中的向上转型)。编译是报错
怎么办呢?即强转(多态中的向下转型)---转型之后使用的是子类的属性和方法
使用多态好处的例子
打印结果:
学生类
老师类
好处:同一个方法,传入不同的对象,执行不同对象的相应方法,便于集中管理
就比如你们老板安排任务,他肯定说猪仔们今晚加班,而不是说张三、李四、王五。。。。加班,对吧小老弟。
原文:https://www.cnblogs.com/south-pigeon/p/11688566.html