多态:多种状态的现象。
好处:提高代码的扩展性 (最大的好处)。
提高代码的复用性。
多态的三大要素:1.继承 2.重写 3.父类引用指向子类对象。
ublic class Animal { //父类
//叫
public void shout(){
System.out.println("我是动物,我可以叫...");
}
}
public class Cat extends Animal { //继承
//叫
public void shout(){ //方法重写
System.out.println("我是小猫,我可以喵喵叫...");
}
//挠人
public void scracth(){
System.out.println("我是小猫,我喜欢挠人...");
}
}
public class Dog extends Animal{ //继承
//叫
public void shout(){ //方法重写
System.out.println("我是小狗,我可以汪汪叫...");
}
//看门 保卫主人
public void guard(){
System.out.println("我是小狗,我很忠诚!");
}
}
public class Fish extends Animal{ //继承
//吐泡泡
public void shout(){ //方法重写
System.out.println("我是鱼,我可以吐泡泡...");
}
}
public class Girl {
//玩
public void play(Animal an){
an.shout();
}
}
public class Test {
public static void main(String[] args) {
Girl girl=new Girl(); //创建对象
Animal an=new Cat(); //向上转型
girl.play(an); //调用方法
//an.scratch(); 会报错
Animal an1=new Dog(); //向上转型
Dog dog=(Dog)an1; //向下转型
girl.play(an1); //调用方法
an1.guard(); //向下转型后不会报错
}
}