多态的好处和弊端

 1 package duoTai02;
 2 /*
 3     多态中成员访问特点
 4         成员变量:编译看左边,执行看左边
 5         成员方法:编译看左边,执行看右边
 6 
 7         原因:因为成员方法有重写,而成员变量没有
 8  */
 9 public class AnimalDemo {
10     public static void main(String[] args) {
11         //有父类引用指向子类对象
12         Animal a =new Cat();
13 
14         System.out.println(a.age);
15        // System.out.println(a.weight);
16 
17         a.eat();
18        //a.playGame();
19     }
20 }
1 package duoTai03;
2 
3 public class Cat extends Animal{
4 
5     @Override
6     public void eat() {
7         System.out.println("猫吃鱼");
8     }
9 }
 1 package duoTai03;
 2 
 3 public class Dog extends Animal{
 4 
 5     @Override
 6     public void eat() {
 7         System.out.println("狗吃骨头");
 8     }
 9 
10     public void lookDoor(){
11         System.out.println("狗看门");
12     }
13 }
 1 package duoTai03;
 2 
 3 public class AnimalOperator {
 4 
 5    /* public void useAnimal(Cat c){
 6         c.eat();
 7     }
 8 
 9     public void useAnimal(Dog d){
10         d.eat();
11     }*/
12 
13     public void useAnimal(Animal a){
14         a.eat();
15        // a.loolDoor();
16     }
17 }
 1 package duoTai03;
 2 /*
 3     多态的好处和弊端
 4         多态的好处:提高了程序的扩展性
 5             具体体现:定义方法的时候,使用父类型作为差数,将来在使用的时候,使用具体的值类型参与操作
 6         多态的弊端:
 7             不能使用子类的特有功能
 8 * */
 9 public class AnimalDemo {
10 
11     public static void main(String[] args) {
12         //创建动物操作类的对象,调用方法
13         AnimalOperator ao = new AnimalOperator();
14         Cat c = new Cat();
15         ao.useAnimal(c);
16 
17         Dog d = new Dog();
18         ao.useAnimal(d);
19     }
20 }

 

posted @ 2021-01-18 22:18  找不到北的北  阅读(314)  评论(0)    收藏  举报