Java面向对象之多态(来源于身边的案例)

201913 星期四

Java面向对象之多态(来源于身边的案例)

 

1. 为什么要用多态?

1.1 多态是面向对象的三大特性之一

1.2 多态是基于接口设计的模型

1.3 多态具有横向扩展特性

1.4 可以非常标准匹配“依赖倒置原则”,降低前端与后端间的耦合

 

2.不一样的多态案例

2.1 UML静态模型图

 备注:想学UML建模的可以看这篇

 

2.2 牙齿多态接口,代码如下:

package com.wuji.duotai;

public interface Tooth {
    void yao();
}

 

2.3 门齿多态实现,代码如下:

package com.wuji.duotai;

public class MenChi implements Tooth {
    @Override
    public void yao() {
        System.out.println("门齿用来切割食物如水果类");
    }
}

 

2.4 犬齿多态实现,代码如下:

package com.wuji.duotai;

public class QuanChi implements Tooth {
    @Override
    public void yao() {
        System.out.println("犬齿用来撕碎食物如肉类");
    }
}

 

2.5 臼齿多态实现,代码如下:

package com.wuji.duotai;

public class JiuChi implements Tooth {
    @Override
    public void yao() {
        System.out.println("臼齿用来磨碎食物,如肉类经犬齿撕碎后");
    }
}

 

2.6 场景使用类代码如下:

import com.wuji.duotai.JiuChi;
import com.wuji.duotai.MenChi;
import com.wuji.duotai.QuanChi;
import com.wuji.duotai.Tooth;

public class Client {
    public static void main(String[] args) {

        //吃水果
        eat(new MenChi());
        //吃肉
        eat(new QuanChi());
        eat(new JiuChi());
    }

    private static void eat(Tooth tooth){
        tooth.yao();
    }
}

 

3.总结:这个案例网上是没有的,属于无忌独创,当时在帮孩子辅导作业,小学科学,里面有一点内容是关于人的牙齿,说牙齿分为:门齿、犬齿、臼齿,问闺女,为什么这么分呢?闺女说牙齿虽然都是用来咬食物,但是食物种类很多,咬碎需要的工具也不一样,门齿用来切割食物,如:苹果、梨;犬齿用来撕碎食物,如肉类;臼齿用来磨碎食物,如犬齿撕碎的肉类,就需要再用臼齿来磨碎,然后送到食道,胃,小肠,大肠进行消化。我恍然大悟,这不就是Java面向对象里的多态吗?多完美啊。。。这也很好说明了为什么会有多态出现。。。因为生活中就存在太多这种例子,所以需要多态来匹配解决

 

转载于:https://www.cnblogs.com/javajiuyangzhenjing/p/10216339.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值