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

Wesley13
• 阅读 344

2019年1月3日 星期四

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

1. 为什么要用多态?

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

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

1.3 多态具有横向扩展特性

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

2.不一样的多态案例

2.1 UML静态模型图

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

 备注:想学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面向对象里的多态吗?多完美啊。。。这也很好说明了为什么会有多态出现。。。因为生活中就存在太多这种例子,所以需要多态来匹配解决

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java面试(1)
1.面向对象的基本特征  封装、继承、多态、  封装:把客观事物封装成类  继承:继承一个类,就可以使用这个类的所有功能,并且在无需编写原来类的情况下对这些功能进行扩展  多态:子对象调用父对象,父对象会根据当前调用的子对象以不同的方式运作  实现多态:覆盖,重载2.final\\finally\\finalize的区别  fin
待兔 待兔
3年前
Java多态实现原理
Java多态概述多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevirtual)和接口引用调用(invokeinterface)的实现则有所不同。类引用调用的大致过程为:Java编译器将Java源代码编译成c
Wesley13 Wesley13
2年前
java面向对象的三大特性
java面向对象的三大特性1.封装,把事物封装成抽象的类,通过访问控制符把自己的成员变量和函数对不可信的进行信息隐藏以及提供方法给可信的类和对象来操作。2.继承,继承可以使用现有类的所有功能和成员变量,并且无需重新编写原来的类的情况下对这些功能进行扩展。3.多态,实现了对代码的复用,多态具体体现为重载和重
小万哥 小万哥
11个月前
C++虚函数详解:多态性实现原理及其在面向对象编程中的应用
在面向对象的编程中,多态性是一个非常重要的概念。多态性意味着在不同的上下文中使用同一对象时,可以产生不同的行为。C是一种面向对象的编程语言,在C中,虚函数是实现多态性的关键什么是虚函数虚函数是一个在基类中声明的函数,它可以被子类重写并提供不同的实现
Wesley13 Wesley13
2年前
C++课程第五次博客——多态
\TOC\多态性Part1多态性概述多态是指同样的消息被不同类型的对象接收时导致不同的行为。在C中,所谓信息是指对类的成员函数的调用,不同的行为是指不同的实现,也就是调用了不同的函数。1)多态的类型分为四类:重载多态,强制多态,包含多态和参数多态。前两者为专用多态,而后者称为通用多态。2)
可莉 可莉
2年前
20175212童皓桢 Java实验二
20175212童皓桢Java实验二面向对象程序设计实验报告实验内容初步掌握单元测试和TDD理解并掌握面向对象三要素:封装、继承、多态初步掌握UML建模熟悉S.O.L.I.D原则了解设计模式实验步骤
Stella981 Stella981
2年前
20175212童皓桢 Java实验二
20175212童皓桢Java实验二面向对象程序设计实验报告实验内容初步掌握单元测试和TDD理解并掌握面向对象三要素:封装、继承、多态初步掌握UML建模熟悉S.O.L.I.D原则了解设计模式实验步骤
Wesley13 Wesley13
2年前
JAVA面向对象
一、java面向对象的特征?答:java面向对象的特征:封装、继承、多态、抽象。如果问java面向对象的三大特征是什么?那就是封装、继承、多态,但说到面向对象,还有一个很主要的特征就是抽象。1、封装a)铺垫:Java把真实世界中某些具有共同特征的实体抽象成Java中的类,类的实例就是一个对象,而对象和真实世界的实体是一一
Wesley13 Wesley13
2年前
JAVA 基础知识
JAVA纯面向对象语言,有平台无关性,一次编译到处运行,编辑器会把java代码变成中间代码,然后在JVM上解释执行。拥有很多内置的类库,提供了对Web应用开发的支持,具有较好的安全和健壮性。JAVA和C的异同都是面向对象语言使用了面向对象的思想(封装,继承,多态),面向对象的特性(继承和组合)  面向对象有以下特点:  (1