多态是指不同类的对象在调用同一个方法时所呈现出的多种不同行为。
在一个类中定义的属性和方法被其他类继承或重写之后,当把子类对象直接赋值给父类引用变量时,相同引用六类线的变量调用同一个方法将呈现多种不同的形态。
一个父类可以有多个子类,多个子类都可以重新父类的方法,并且多个不同的子类对象也可以指向同一个父类;这样,程序只有在运行时才能知道具体代表的哪个子类对象。
将子类对象当做父类使用时不需要任何显式声明,需要注意的是,此时不能通过父类变量去调用子类特有的方法。
public class Example14{
public static void main(String[] args) {
Animal an1=new Cat();
Animal an2=new Dog();
an1.shout();
an2.shout();
}
}
abstract class Animal {
abstract void shout();
}
class Cat extends Animal{
public void shout(){
System.out.println("喵喵。。。。。。");
}
}
class Dog extends Animal{
public void shout(){
System.out.println("汪汪。。。。。。");
}
}