这一章节我们来讨论一下适配的问题?
说白了,就是可以使用任何对象调用某个方法,而这个对象只需要符合某种协议。
而这种协议的实现有两种方法:继承和接口,但是一般都是使用接口,因为他的代码复用性比继承强,而且继承本身还包含父类的很多实现,造成不必要的混淆。而且通过接口我们可以实现多重接口(类似多重继承)
下面是两组对比的代码:
package com.ray.ch07;
class father {
private int id = 0;
private void sleep() {
}
public int run(int speed) {
return speed;
}
}
public class Test extends father {
@Override
public int run(int speed) {
// TODO Auto-generated method stub
return super.run(speed);
}
}
通过继承,一般都是像上面的代码,Test单继承father,test对象只能向上转型为father类,如果需要多重继承,可能继承的层级就会骤然增多。
我们再来看看接口方面:
package com.ray.ch07;
interface Son {
void sleep();
int run(int speed);
}
interface Mother {
void eat();
}
public class Test implements Son, Mother {
@Override
public void eat() {
// TODO Auto-generated method stub
}
@Override
public void sleep() {
// TODO Auto-generated method stub
}
@Override
public int run(int speed) {
// TODO Auto-generated method stub
return 0;
}
public static void main(String[] args) {
Mother mother = new Test();
mother.eat();
Son son = new Test();
son.sleep();
son.run(2);
}
}
在上面的代码里面Test可以非常容易的向上转型为Son和Mother这两个类,从多态的角度出发,使用接口来适配代码的重用性大大的增加,而且代码更加灵活。
总结:这一章节主要讨论适配的实现中使用哪个,我们推荐使用接口,因为他带来更多的灵活性和代码的复用性。
这一章节就到这里,谢谢。
-----------------------------------
目录
分享到:
相关推荐
从头写React-like框架的工程搭建实现 最近在网上看到了 Build your own React 这篇文章,作者从零开始实现了一个简易类 React 框架,虽然没有过多的优化,但 React 中的核心思想 Concurrent Mode,Fiber ...
和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的 Java 语言基础上跃进一步,更重要的是,GoF 的设计模式反复 向你强调一个宗旨:要让你的程序尽可能的可重用。 这其实在向一个极限挑战:软件需求变幻...
从头开始学习Java课程-资料来源PillsInformática。
本资料是UCSF DOCK的使用案例分享的输入资料,将使用DOCK 6.11自带的片段库,使用DOCK/RDKit的 DOCK_D3N功能从头设计分子。便于使用者直接从这部分设计工作开始,不需花时间来准备输入文件。
跟解决问题一样我们玩游戏的时候,也就是在游戏中解决问题,我们设计游戏更是会遇到各种问题。倘若每个问题我们都从头自己编码解决,毫无疑问这是很麻烦的。这个时候就要想到套用模式。
Java-3D游戏引擎与基本游戏Java中使用LWJGL,OpenGL,OpenAL等的3D游戏引擎。 从头开始
视频 https://www.bilibili.com/video/BV1914y1s7hi
视频 https://www.bilibili.com/video/BV1914y1s7hi
外卖订餐java源码 你会学到什么 通过 Java 片段的构建块,您将能够立即了解 Java 编程的要点。 你需要什么 勇敢地浏览存储库! 或替代开源 JDK 1.8 版本 截至今天,该存储库已通过测试 Oracle JDK 1.8 OpenJDK 1.8 ...
军工行业2021年度投资策略:而今迈步从头越-20201115-招商证券.pdf
3. 线程安全:项目中使用了Java的synchronized关键字和Lock接口来确保线程安全。这样可以避免多个线程同时访问共享资源,从而避免数据不一致和其他潜在问题。 4. 基于Http协议:项目使用了Java的HttpURLConnection...
java实现验证码功能源码 Java Periphery 是一个高性能库,用于用户空间 Linux 中的 GPIO、LED、PWM、SPI、I2C、MMIO 和串行外设 I/O 接口访问。 我没有尝试从头开始构建它并生成 JNI 包装器。 这节省了大量手动编码...
赖世雄英语从头学 下载-附件资源
这份源码针对娱乐游戏音乐领域,提供即用型解决方案,减少从头开发的繁琐流程。精心设计的界面与用户交互元素,保证吸引目标用户群体。集成的音乐播放功能,提升用户体验。使用这份源码,可显著缩短项目开发周期,...
这份源码针对娱乐游戏音乐领域,提供即用型解决方案,减少从头开发的繁琐流程。精心设计的界面与用户交互元素,保证吸引目标用户群体。集成的音乐播放功能,提升用户体验。使用这份源码,可显著缩短项目开发周期,...
乙二醇2020年度策略报告:“熊”关漫道真如铁,而今迈步从头越-20191230-光大期货-36页.rar
本资源提供了Java中如何设计和实现决赛名单的全面指南。文档涵盖了列表的基本概念,包括如何创建、添加和删除元素。此外,文档还包括了一个逐步指南,介绍如何在Java中创建列表类,包括代码示例和实现细节。 本文档...