多态:一种事物多种表现形式。
可分为三种:具体类多态、抽象类多态、接口类多态
举例说明:猫是动物,狗是动物。
多态的前提:有继承、有重写、有父类的指针指向子类的对象( 父类 f = new 子类() )
代码体现:
class Fu {
public void show ( ) {
System . out . println ( " show Fu" ) ;
}
}
class Zi extends Fu{
public void show ( ) {
System . out . println ( " show Zi " );
}
}
class Dome{
public static void main ( String [ ] args){
Fu f = new Zi ( ) ;
}
}
多态中成员访问的特点:
成员变量:编译的时候看父类,运行的时候看父类。
构造方法:创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。
成员方法:编译看父类,运行看子类。(由于成员方法存在重写,所以运行看子类)
静态方法:编译看父类,运行看子类。(静态方法和类相关,不算重写,所以访问的还是父类的)
多态的好处:
①提高了代码的维护性(有继承);
②提高了代码的扩展性(有重写)。
在多态中 instanceof 用于判断一个对象是否属于一个类,通常和强制类型转换相结合使用,首先通过 instanceof 进行判断,然后进行相应的强制类型转换。
在多态中,通常使用父类作为方法形参。