java模拟多重继承,且避免重复代码的方法
来源:互联网 发布:网络与信息安全学报 ei 编辑:程序博客网 时间:2024/06/16 04:52
众所周知,java是一门不支持多重继承的语言,每当在java中谈及多重继承,人们都会说起接口。
然而一般理解之下,既然是接口,里面的方法是不能有具体实现的,顶多也就起到一个规范的作用嘛,这样岂不是还会造成代码的大量重复?
但是事实上并非如此,利用类的组合关系,即可很好地避免代码重复,同时也起到了代码的规范化,而类也在逻辑上实现了多重继承。
下面来举一个例子:
交通工具的基类:Vehicle
陆地交通工具:GroundVehicle
水上交通工具:WaterVehicle
水陆两用交通工具:CommonVehicle
一般来说,陆地交通工具与水上交通工具都需要继承于交通工具(Vehicle),但是谁陆两用交通工具呢?只能继承于一个父类呀,怎么办?难道继承某一个,然后另一个就全部再复制一遍?
并不需要,请看类图:
如图所示,我们新建了一个IWaterVehicle接口,而水陆两用交通工具CommonVehicle实现了该接口的同时,也与水上交通工具有组合关系。
水上交通工具需要的方法全部申明于IWaterVehicle接口中,实现于WaterVehicle类中,而对于CommonVehicle类来说,里面包含了一个WaterVehicle类的对象,而实现接口中规定的方法时,只需要调用对象里的对应方法即可。
举个栗子:
IWaterVehicle接口:
public interface IWaterVehicle{ public run();}
WaterVehicle类:
public WaterVehicle implments IWaterVehicle{ public run(){ System.out.println("run on water"); }}
CommonVehicle类:
public CommonVehicle extends GroundVehicle implments IWaterVehicle{ /* * 继承方面的代码省略 */ //定义一个WaterVehicle对象————体现了组合关系 WaterVehicle wVehicle = new WaterVehicle(); //实现接口中定义的方法 public run(){ //这里直接调用wVehicle对象的方法,避免了重复代码 wVehicle.run(); }}
阅读全文
0 0
- java模拟多重继承,且避免重复代码的方法
- java的"多重继承":interface模拟
- java的多重继承~interface模拟
- 在Java中模拟多重继承--扩展多个类的技巧
- 在Java中模拟多重继承--扩展多个类的技巧
- 在Java中模拟多重继承--扩展多个类的技巧
- 避免重复提交的方法
- java 多重继承的困境
- 避免多重继承引起的冲突——虚基类
- JavaScript:避免代码的重复执行
- 代码重用,多重继承
- python 多重继承的方法解析顺序
- 如何避免代码重复
- VC++ 避免重复启动程序的方法
- 避免浏览器重复提交的方法
- mysql避免重复插入的一个方法
- MySQL避免插入重复记录的方法
- java学习 --接口的多重继承
- poj2528
- Java关键字之final------finally------finalize
- 欢迎使用CSDN-markdown编辑器
- 快速排序 c++实现
- 《Java编程思想》--接口--第9章
- java模拟多重继承,且避免重复代码的方法
- 分享自己最近在写的电商平台
- jasperreport所有版本下载地址
- 线程终止
- 20170913_chr_hellochr HelloWorld的几种实现方式(Struts2初接触)
- zstack 终端不断重发Match Descriptor Request,无法入网
- 《数字技术》连载25: 第3章 逻辑设计初步 第5节 卡诺图,逻辑式的简化
- 利用apiary.io测试本地服务器
- 将网页变为灰白色的方法(悼念缅怀主题)