java 多态的简单理解_java多态理解

代码如下,猫狗继承自动物类,分别创建猫狗的实例,然后用猫狗的实例来创建一个lady的对象。创建lady对象有个疑问,lady的构造方法中,接收的是动物类型的变量,而创建lady对象传入的参数是动物类的子类对象,

这里为什么不需要强制类型转换呢?

据说这个就是多态的简单例子,求解一个比较通俗易懂讲解!谢谢!

public class TestPolymoph {

public static void main(String args[]) {

Dog g = new Dog("wangcai", "yellow");

Cat c = new Cat("daju", "blue");

Lady l1 = new Lady("Jecci", g);

Lady l2 = new Lady("Tina", c);

l1.animalEnjoy();

l2.animalEnjoy();

}

}

class Animal {

private String name;

Animal(String _name) {

this.name = _name;

}

public void enjoy() {

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

}

}

class Cat extends Animal {

private String eyesColor;

Cat(String _name, String _eyesColor) {

super(_name);

this.eyesColor = _eyesColor;

}

public void enjoy () {

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

}

}

class Dog extends Animal {

private String furColor;

Dog(String _name, String _furColor) {

super(_name);

this.furColor = _furColor;

}

public void enjoy(){

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

}

}

class Lady {

private String name;

private Animal pet;

Lady(String _name, Animal _pet) {

this.name = _name;

this.pet = _pet;

}

public void animalEnjoy() {

pet.enjoy();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值