清晨

新的开始

导航

Java多态

Posted on 2014-07-14 20:41  gdds  阅读(174)  评论(0)    收藏  举报

多态的必要条件:

                 1:要有继承

                2:要有重写

          3:父类引用指向子类对象          

 

创建一个动物类

public class Animal {

    public void cry(){

       System.out.println("叫......");

    }

}

 

创建一个狗类 继承动物类

public class Dog extends Animal {

    String name;

 

    public Dog(String name) {

       this.name = name;

    }

    //覆盖重写动物类方法

    public void cry() {

       System.out.println("狗叫......");

    }

}

创建一个猫类 继承动物类

public class Cat extends Animal {

    String name;

 

    public Cat(String name) {

       this.name = name;

    }

    //覆盖重写动物类方法

    public void cry() {

       System.out.println("猫叫.......");

    }

}

创建一个人类

public class Person {

    String name;

    Animal animal;

    //传过来一个Animal类型或Animal子类的对象 就是父类引用指向子类对象

    //实际就是animal引用指向Cat、Dog类对象

    public Person(String name, Animal animal) {

       this.name = name;

       this.animal = animal;

    }

    //宠物叫

    public void petCry() {

       this.animal.cry();

    }

}

测试类

public class Test {

    public static void main(String[] args) {

       Dog d=new Dog("小黑");

       Cat c=new Cat("小花");

       Person p1=new Person("张三",d);

       Person p2=new Person("李四",c);

       p1.petCry();

       p2.petCry();

    }

}

输出:

狗叫......

猫叫.......