抽象类和接口的关系之我的图解(转自Jack Fan)
最近,在网络上随意翻阅到一堆描述类(或者抽象类)和接口之间关系的文章,说的都很不错,这篇文章我觉得写得不错,大家可以先看看:点击查看,毕竟我的这篇随笔是基于这篇文章写的,呵呵。
那篇文章说的是抽象类,一句话:“抽象类定义了你是什么东东,而接口定义了你有什么功能”。也许初看不出来什么端倪,下面看一下我的图解吧。
这是一个以Train(火车)为抽象类(因为“火车”没有一般的,必须给予一定的定义)的基类图,下面三个派生类PassengerTrain(客运火车),FreightTrain(货运火车),他们拥有Train的核心定义(如车轮规格、引擎规格等)。
下面,我们来看看,我们用同样的方法,定义一个抽象类Car,又有三个具体的派生类继承了它的核心定义:
现在,我们要为这些交通工具(暂时用这个词来总称它们吧)添加一些基本功能,我们就加入了两个接口来实现特定的功能,IPassengerCarrier(载客接口)和IHeavyLoadCarrier(载重接口),新的关系图如下:
可以看到,Car的派生类都有一个IPassengerCarrier接口,因为它们都能执行载客的功能,Train的派生类中,正常来说,只有载客火车能拥有载客的功能,自然地它就拥有了IPassengerCarrier接口;再来看载重接口(IHeavyLoadCarrier),正常来说,suv和皮卡(pickup)都有载重(货)的功能,和载货火车一样,它们三个都继承了IHeavyLoadCarrier接口。
上面就是我个人对这两个概念(抽象类和接口)的理解,有很多地方可能会有错误,望大家谅解,呵呵。
转载于:https://www.cnblogs.com/tangjian/archive/2009/01/05/1369455.html
抽象类和接口的关系之我的图解(转自Jack Fan)相关推荐
- 抽象类和接口有什么区别
原文链接: javacodegeeks 转自:对抽象类与接口的一点思考 - Sharehub 很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题. ...
- Java11-day02【多态(成员访问、多态转型、内存图解)、抽象类(成员特点)、接口(成员特点)、类和接口的关系、抽象类和接口的区别、综合案例】
视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java ...
- 关于类、抽象类和接口的继承关系
关于类.抽象类和接口的继承关系 Java类的继承是单继承的,就是一个类只能继承一个类,但是可以通过接口来实现多继承,一个类可以实现多个接口.通过这种方式,Java类就可以实现多继承的关系.但是在继承类 ...
- Java中抽象类和接口在概念、语法和应用上的区别和关系
2019独角兽企业重金招聘Python工程师标准>>> 春招开始了,盆友们都忙着准备笔试.准备面试,复习学过的知识点,当然我也不例外,在这里祝每一个"有心人"心想 ...
- 抽象类和接口之间的关系
自学期间查看资料所写,也是看了很多做的总结,能力有限,会出现错误,希望大家指正,谢谢. 1.抽象类是什么 抽象类和具体类是相对的概念."抽象"是一种存在思想逻辑中的概念,而&quo ...
- 接口,类与接口的关系,接口与抽象类的区别
接口 1 接口的概念 与之前学习过的抽象类一样,接口( Interface )在Java中也是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,接口更像是一种规则和一套标准. 2 接口格式 3 接 ...
- 【java进阶02:抽象类和接口】类与类之间的关系 抽象类与接口的区别
目录 抽象类 接口 抽象类 什么是抽象类 /*类---->对象 :实例化 对象---->类 :抽象抽象类:1.什么是抽象类?类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类 ...
- Java从入门到放弃09---多态/向上转型/向下转型/多态内存图/抽象类/关键字abstract不能和哪些关键字共存/接口/类与类,类与接口,接口与接口的关系/抽象类与接口的区别
Java从入门到放弃09-多态/向上转型/向下转型/多态内存图/抽象类/关键字abstract不能和哪些关键字共存/接口/类与类,类与接口,接口与接口的关系/抽象类与接口的区别 01 多态 多态指的是 ...
- C#中抽象类和接口的区别
一.抽象类: 抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆 ...
最新文章
- python hello world重复_从hello world开始学Python
- python绘制dotplot
- DUBBO:前端调用后端服务返回类名
- 20 道 Redis 面试题,面试官能问的都被我找到了
- 快读代码level.2
- 南方cass字体样式设置_CASS字体设置之方正字库中英文对照表
- 不想使用Windows自带远程桌面客户端的另外一种选择
- python 判断字符串是否为空
- 朋友:趣头条上市了!我:谁?
- happen-before原则
- c语言 交互式电子白板案例,交互式电子白板案例分析
- anisotropy texture filtering
- 有一张足够大的纸,它的厚度是0.1毫米。请问,折叠多少次,可以折成珠穆朗玛峰的高度。(java实现)
- 多多情报通:拼多多推广哪个效果好?有什么推广技巧?
- git仓库服务器SSH认证示例
- 怎么用计算机表达爱意,不知道如何向心仪的她表达爱意的你 可能需要Zooids这帮小助攻...
- 戴尔灵越14电脑U盘重装系统方法分享
- eve虚拟机服务器如何配置,EVE-NG在VMware Workstations环境部署 | IT运维网
- arma模型_R语言: GARCH模型股票交易量的研究道琼斯股票市场指数
- 博图 Portal v16 相关资源