面向对象特征之三--------多态性
在java中有两种体现:
1.方法的重载 的多态性 本类中的同名方法,体现了相同的名称方法实现不同的逻辑
方法的重写的多态性 子类对父类的重写;子类可以使用和父类一样的方法名,覆盖掉父类的逻辑
(父类的方法,想修改逻辑,但是有别的代码在调用父类的方法,可以考虑,子类继承父类,重写父类的方法)
2.对象的多态性 可以直接应用在抽象类和接口上
*java引用变量有两个类型:编译时类型和运行时类型
编译时类型由声明该变量时使用的类型决定;
运行时类型由实际赋给该变量的对象决定。
俩类型不一致时,出现多态(对象的多态)。
什么是对象的多态?????
Student stu = new Student();
Person per=new Person();
//以上是正常情况
Person a=new Student();//用父类的引用对象可以指向子类的实例
Person per=new Person();
per=new Student();
//???问题:当前这个引用对象引用的是哪个实例对象------->>Student()的实例对象
因此:子类可以看作是特殊的父类,所以父类类型的引用可以指向子类的对象——向上转型。
1.对于成员变量来说:
属性是在编译时确定的。。
2.对于虚拟方法调用来说:
=>>Person per=new Student();
per.showInfor();//问题???调用哪个类下的showinfor方法——>>Student()类的