package Test1;
/**
*
* @author 刘子煜
*2019.10.22
* 多态的实现:
* 多态是指方法的多态,不是属性的多态
* 多态存在的三个必要条件:继承的出现、方法的重写、父类引用指向子类对象
* 父类引用指向子类对象后,用该父类引用调用子类重写的方法,多态就实现了
*/
public class Test12 {
public static void main(String[] args) {
Animal a=new Animal();
Cry(a);
Dog d=new Dog();
//此处为父类引用指向子类对象
Cry(d);
Cat c=new Cat();
//此处为父类引用指向子类对象
Cry(c);
}
static void Cry(Animal a1) {
a1.shout();
}
}
//shout()方法的重写,Dog和Cat继承Animal类
class Animal{
public void shout() {
System.out.println("叫了一声!!!");
}
}
class Dog extends Animal{
public void shout() {
System.out.println("汪汪汪!!");
}
}
class Cat extends Animal{
public void shout() {
System.out.println("喵喵喵!!");
}
}
//多态的好处是:当要调用同一种方法,但方法的行为不同时,不必写多个子类引用来调用该方法。大大简便了程序代码。。。