父类引用指向子类对象,多态

来源:互联网 发布:java面试题spring 编辑:程序博客网 时间:2024/05/21 14:46

多态:
父类引用指向子类对象,即创建一个子类对象让父类进行接收,生成的对象可以调用父类的方法,但是当子类中存在与父类相同的方法时发生覆盖现象;如果想要调用子类特有的方法时需要向下转型,即将父类强制转化为子类然后对子类方法进行调用。

class Animal{    private String name;    private String sounds;    public Animal(){        this.name="animal";        this.sounds="+++++";    }    public Animal(String name,String sounds){        this.name=name;        this.sounds=sounds;    }    public String getName() {        return name;    }    public String getSounds() {        return sounds;    }    public void Sound(){    System.out.println("Animal Sound"+","+name+","+sounds);    }}class Dog extends Animal{    public Dog(){     super("xiaogou","wangwang");       }    public void Kanjia(){    System.out.println("Dog Kanjia"+","+getName()+","    +getSounds());    }   }class Cat extends Animal{    public Cat(){     super("xiaomao","miaomiao");       }    public void Sound(){    System.out.println("Cat Sound"+","+getName()+","        +getSounds());    }   }public class MainDemo {    public static void main(String[] args) {        // TODO Auto-generated method stub     Animal a=new Animal();     System.out.println("Animal:");     a.Sound();     Animal d=new Dog();     System.out.println("Dog:");     d.Sound();     Dog dd=(Dog)d;     dd.Kanjia();     Animal c=new Cat();     System.out.println("Cat:");     c.Sound();    }}
Animal:Animal Sound,animal,+++++Dog:Animal Sound,xiaogou,wangwangDog Kanjia,xiaogou,wangwangCat:Cat Sound,xiaomao,miaomiao
1 0
原创粉丝点击