多态就是父类引用指向子类对象
前提是子父类有继承的关系
父类类型 变量名 = new 子类类型();
变量名.方法名();
普通类实现多态
class Fu {}
class Zi extends Fu {}
//类的多态使用
Fu f = new Zi();
抽象类实现
接口类和抽象类必须要重写方法之后才能实现多态
abstract class Fu {
public abstract void method();
}
class Zi extends Fu {
public void method(){
System.out.println(“重写父类抽象方法”);
}
}
//类的多态使用
Fu fu= new Zi();
接口类实现多态
interface Fu {
public abstract void method();
}
class Zi implements Fu {
public void method(){
System.out.println(“重写接口抽象方法”);
}
}
//接口的多态使用
Fu fu = new Zi();
多态的成员变量特点:
编译时参考引用类型所属的类是否调用成员变量
即调用时先调用父类,如果父类没有就会报错
多态的成员方法特点:
编译时,参考引用类型所属类是否调用成员方法
即调用时先调用父级的方法,如果父级有编译通过,如果腹肌没有编译报错
但是调用后实现的是子类重写后的成员方法