多态:
即同一方法可以根据发送对象的不同采用多种不同的行为方式
一个对象的类型是确定的,但可以指向对象的引用的类型有很多
多态存在的条件
-
有继承关系
-
子类重写父类的方法
-
父类引用指向子类对象
public static void main(String[] args) { //一个对象的实际类型是确定的 //可以指向的引用类型不确定,父类的引用指向子类 Chinese s1 = new Chinese(); People s2 = new Chinese();//子类重写的父类的方法,调用子类的方法 s1.run(); s2.run(); ((Chinese) s2).Study();//强转 //s2.Study(); 父类指向子类,但不能调用子类独有的方法 /* 1.多态是方法的多态,属性没有多态 2.父类的子类有联系,类型转换异常 :ClassCastException 3.存在条件,继承关系,方法要重写,父类可指向子类对象 Father s=new Son(); 1:static 方法,属于类,不属于实例,不能重写 2:final 常量 3:private 方法 私有的,不能重写 */ }
注意:多态是方法的多态,属性没有多态
关键词:instanceof 类型转换----引用类型的转换