多态:可以理解为事物存在的多种体现形态。
人:男人,女人
动物:猫,狗
猫 x=new 猫 ();
动物 x=new 猫();
1.多态的体现
父类的引用指向子类的对象
父类的引用也可以接收
2.多态的前提
必须是类与类之间有关系,要么有继承关系,要么有实现关系
通常还有个前提:存在覆盖。
3.多态的好处
多态的出现大大提高了程序的扩展性
4.多态的弊端:
提高了扩展性,但是只能使用父类的引用访问父类中的成员,不能预先使用子类。
5.多态的应用
public class DuoTai_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal c=new Cat();
function(c);
}
public static void function(Animal a){
a.eat();
}
}
abstract class Animal{
abstract void eat();
}
class Cat extends Animal{
public void eat(){
System.out.println("eat fish");
}
public void catchMouse(){
System.out.println("抓老鼠");
}
}
class Dog extends Animal{
void eat() {
System.out.println("eat bone");
}
public void kenBone(){
System.out.println("啃骨头");
}
}
class Pig extends Animal{
void eat(){
System.out.println("饲料");
}
public void gongDi(){
System.out.println("拱地");
}
}