面向对象-----多态(为什么会用到多态?)

多态在实际开发中的作用

  • 降低程序的耦合度,提高程序的扩展力
  • 编码中能使用多态尽量使用多态
  • 父类型引用指向子类型对象
  • 核心:面向抽象编程,尽量不要面向具体编程

举个例子我们来感受一下多态的魅力~~~~~

我们要实现,主人喂猫,喂狗(首先采用重载的方式)

public class Cat {
public void eat(){
System.out.print("猫在吃鱼");
}
}


public class Dog {
public void eat(){
System.out.print("狗在啃骨头");
}
}

public class Host {
public void feed(Cat c){
c.eat();
}
public void feed(Dog d){
d.eat();
}
}

public class Test {
public static void main(String[] args) {
Host h=new Host();
Cat jiaFei=new Cat();
h.feed(jiaFei);
Dog erHa=new Dog();
h.feed(erHa);
}
}

小结:如果采用这样的方式去编程,扩展力很弱,当主人想要养宠物“仓鼠”,我们需要创建“仓鼠”类,并且在“主人”类当中,还需要重载一次“feed”方法。
我们想要去做到,即使新养一个宠物,不用再去写新的feed方法

那么,就要用到多态(重头戏来喽!来喽!他来喽!)

public class Pet {
public void eat(){
}
}
public class Dog extends Pet{
public void eat(){
System.out.print("狗在啃骨头");
}
}

public class Cat extends Pet{
public void eat(){
System.out.print("猫在吃鱼");
}
}
//主人类
public class Host {
public void feed(Pet p){
p.eat();
}
}

测试代码不变
这样我们实现了,无论新增加多少个宠物,Host的feed方法都不需要改变

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值