您的位置:首页 > 其它

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

2016-08-31 20:30 267 查看
多态:

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

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,wangwang
Dog Kanjia,xiaogou,wangwang
Cat:
Cat Sound,xiaomao,miaomiao
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息