一个父类可以有多个子类,每个子类都可以重写父类中的相同的方法,从而实现同一个行为具有多个不同表现形式或形态的能力。
多态意味着父类型的变量可以引用子类型的对象,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条)