多态是指同一行为的不同表现形式。例如:动物吃东西是一种行为。猫吃鱼,狗吃肉是不同的表现形式。
多态存在的3个必要条件:
1.继承
2.重写
3.父类引用指向子类对象。
实例:
abstract class Animal{
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
abstract void eat();
}
public class Dog extends Animal{
public void eat(){
System.out.println("狗吃肉");
}
}
public class Cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
public void work(){
System.out.println("猫捉老鼠");
}
}
调用:
Animal a = new Cat();
Dog dog = new Dog();
a.eat();
Cat cat = (Cat)a;
cat.work();
dog.eat();
结果:
猫吃鱼
猫捉老鼠
狗吃肉
abstract用于修饰类和方法。修饰方法时,当前类的方法不需要实现。子类必须实现该方法。