封装与多态例子

来源:互联网 发布:阿里云发票邮寄 编辑:程序博客网 时间:2024/06/15 20:34
/**
 * 1、
1) 创建一动物类:Animal
2) 创建三个子类:Dog、Cat、Pig都继承于Animal
3) 为Dog添加Love(),打印我喜欢吃骨头
4) 为Cat添加Love(),打印我喜欢吃小鱼
5) 为Pig添加Love(),打印我喜欢吃饲料
6) 请创建一个长度为3的动物数组Animal[] animals = new Animal[3];
7) 分别创建一个狗、猫、猪对象,并将三个对象加入至动物数组内
8) 请采用循环调用动物数组内的每一个动物的Love()方法
 */
package com.duotai;


public class Test {
public static void main(String[] args) {
     Animal[] animal=new Animal[3];
     Manager manager=new Manager();


     /*Dog dog=new Dog();
     manager.show(dog);//dog做实参,传递给animal的对象
     Cat cat=new Cat();
     manager.show(cat);
     Pig pig=new Pig();
     manager.show(pig);*/
     
    Dog dog =new Dog();
    animal[0]=dog;
    Cat cat=new Cat();
    animal[1]=cat;
    Pig pig =new Pig();
    animal[2]=pig;
    for (int i = 0; i < animal.length; i++) {
manager.show(animal[i]);
}
}

}


package com.duotai;


public class Manager {
    public void show(Animal animal){  //对象做形参
    animal.Love();// 对象调用方法
    /*Dog dog=new Dog();
        dog.Love();
        Cat cat=new Cat();
        cat.Love();
        Pig pig=new Pig();
        pig.Love();
        animal=dog;
        animal.Love();*/
    
    }

   
}


package com.duotai;


public class Animal {

public  void Love(){
System.out.println("我喜欢吃东西");
}
}



package com.duotai;


public class Cat extends Animal {
public void Love() {
System.out.println("我喜欢吃小鱼");
}
}



package com.duotai;


public class Dog extends Animal {
public void Love() {
       System.out.println("我喜欢吃骨头");
}
}



package com.duotai;


public class Pig extends Animal {
public void Love() {
System.out.println("我喜欢吃饲料");
}
}

0 0
原创粉丝点击