动态绑定(多态)

来源:互联网 发布:网络渗透软件 编辑:程序博客网 时间:2024/05/01 06:07
class Animal{
    private String name;
    public Animal(String name){
        this.name=name;
    }
    public void enjoy(){
        System.out.println("动物的叫声。。。。。。。。。。");
    }
}
class Cat extends Animal{
    String color;
    public Cat(String name,String color){
        super(name);
        this.color=color;
    }
    public void enjoy(){
        System.out.println("猫叫声。。。。。。。。。。。");
    }
}
class Dog extends Animal{
    String color;
    public Dog(String name,String color){
         super(name);
        this.color=color;
    }
    public void enjoy(){
        System.out.println("狗叫声。。。。。。。。。。。。。");
    }
}
/*class Bird extends Animal{
    String color;
    public Bird(String name,String color){
         super(name);
        this.color=color;
    }
    public void enjoy(){
        System.out.println("鸟叫声。。。。。。。。。。。。。");
    }
}
*/

class Lady{
    private String name;
    private Animal pet;
    public Lady(String name,Animal pet){
        this.name=name;
        this.pet=pet;
    }
    public void myPetEnjoy(){
        pet.enjoy();
    }
}
public class A {
    public static void main (String [] args)
    {
        Cat cat=new Cat("mimi","yellow");
        Dog dog=new Dog("huahua","black");
        //Bird bird=new Bird("yingwu","red");
        Lady l1=new Lady("lily",cat);
        Lady l2=new Lady("jack",dog);
       // Lady l3=new Lady("john",bird);
        l1.myPetEnjoy();
        l2.myPetEnjoy();
        //l3.myPetEnjoy();
    }

}


//00000000000下这种效果不是最好的00000000000000000000000000
class Animal{
    public String name;
    public Animal(String name){
        this.name=name;
    }
   
}
class Cat extends Animal{
    public String color;
    public Cat(String name,String color){
        super(name);
        this.color=color;
    }
   
}
class Dog extends Animal{
   public String color;
    public Dog(String name,String color){
         super(name);
        this.color=color;
    }
   
}

public class A {
    public static void main (String [] args)
    {
        A a=new A();
        Animal animal=new Animal("animal");
        Cat cat=new Cat("mimi","yellow");
        Dog dog=new Dog("huahua","black");
        a.f(animal);
        a.f(cat);
        a.f(dog);
       
    }
    public void f(Animal a){
        System.out.println("name :"+ a.name); 
        if(a instanceof Cat){
            Cat c=(Cat)a;
            System.out.println(" "+c.name+"  "+c.color);
        }
        else if(a instanceof Dog){
            Dog d=(Dog)a;
            System.out.println(" "+d.name+"  "+d.color);
        }
    }
}

0 0
原创粉丝点击