多态的理解
多态分为静多态与动多态:
1)静多态:也称为编译时的多态,就是常说的方法重载,是在编译时刻就已经确定号具体调用方法的情况,是静态绑定的。
2)动多态:动多态方法调用需要有方法调用所作用的对象,在调用时才确定具体的调用方法,是动态绑定的。
换句话说多态就是同一个行为在不同情况下的不同表现形式,多态发生时有三个必要条件:(1)继承(2)方法重写(3)父类引用派生类的对象
多态的举例实现
1)写一个父类Food:
class Food {
public void eat(){
System.out.println("在吃饭");
}
}
2)写一个子类TeaEgg:
class TeaEgg extends Food{
@Override
public void eat() {
System.out.println("在吃茶叶蛋");;
}
}
3)测试类:
public class Test {
public static void main(String[] args) {
Food food = new TeaEgg();
food.eat();
}
}
输出结果为:
在吃茶叶蛋
这一个简单的多态举例,体现了多态实现的三个必要条件:
(1)TeaEgg类继承了Food类;
(2)在TeaEgg类中重写了父类Food中的eat()方法;
(3)Food父类的引用指向了TeaEgg子类的对象:
Food food = new TeaEgg();
即父类引用派生类的对象。