
一个父类可以有多个子类,每个子类都可以重写父类中的相同的方法,从而实现同一个行为具有多个不同表现形式或形态的能力。
多态意味着父类型的变量可以引用子类型的对象,eg: 父类可以调用被子类重写的方法。
多态存在的三个必要条件
- 继承
- 重写
- 父类引用指向子类对象:Parent p = new Child();
public class Test {
public static void main(String[] args) {
Animal a=new Cat(); // 向上转型 变成父类型
// 编译时a被认为是Animal类型,运行时被认为是父类型
Animal b=new Dog(); // 向上转型 变成父类型
Animal f=new Animal();
a.eat(); //调用的是子类的方法
a.work();
Cat c = (Cat)a; //向下转型 变成子类型
Dog d = (Dog)b;
c.eat();
d.eat();
}
}
class Cat extends Animal{
// @Override
public void eat() {
System.out.println("吃鱼");
}
}
class Dog extends Animal{
// @Override
public void eat() {
System.out.println("吃骨头");
}
}
class Animal{
public void eat(){
System.out.println("吃啥呢");
}
public void work(){
System.out.println("验证a的内部是Animal类型");
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)