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

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

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
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值