多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作。
多态性是对象多种表现形式的体现
多态存在的三个必要条件
1.继承
2.重写
3.父类引用指向子类对象
多态的优点
1.消除类型之间的耦合关系
2. 可替换性
3. 可扩充性
4. 接口性
5. 灵活性
6. 简化性
多态中成员访问的规则
成员变量:编译看左边,运行看左边
成员方法:编译看左边,运行看右边。
静态方法:编译看左边,运行看左边
多态实现的简单程序
public class test {
public static void main(String[] args) {
Animal a = new Cat();
a.eat();//调用的是cat的eat
((Cat) a).catchMouse();//向下转型调用的是cat的catchmouse
a=new Dog();
a.eat();
((Dog) a).lookdoor();
}
}
abstract class Animal{
abstract void eat();
}
class Cat extends Animal{
@Override
void eat() {
System.out.println("吃鱼");
}
void catchMouse(){
System.out.println("猫抓老鼠");
}
}
class Dog extends Animal{
@Override
void eat() {
System.out.println("吃骨头");
}
void lookdoor(){
System.out.println("狗看门");
}
}
执行以上程序,运行结果为
吃鱼
猫抓老鼠
吃骨头
狗看门