这一章节我们来讨论一下适配的问题?
说白了,就是可以使用任何对象调用某个方法,而这个对象只需要符合某种协议。
而这种协议的实现有两种方法:继承和接口,但是一般都是使用接口,因为他的代码复用性比继承强,而且继承本身还包含父类的很多实现,造成不必要的混淆。而且通过接口我们可以实现多重接口(类似多重继承)
下面是两组对比的代码:
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这两个类,从多态的角度出发,使用接口来适配代码的重用性大大的增加,而且代码更加灵活。
总结:这一章节主要讨论适配的实现中使用哪个,我们推荐使用接口,因为他带来更多的灵活性和代码的复用性。
这一章节就到这里,谢谢。
-----------------------------------
目录
分享到:
相关推荐
在Java开发中,这样的库可以极大地提高开发效率,因为它封装了常见的功能,开发者可以直接使用,而无需从头编写代码。 描述中的 "mchange-commons-java-0.2.11.jar包" 是该库的主要组成部分,是一个Java归档(JAR)...
Eclipse IDE for Java Developers 是一款广泛使用的集成开发环境(IDE),专为Java编程设计。它由Eclipse基金会维护,提供了一整套工具,用于编写、调试、测试和部署Java应用程序。2021-12-R 版本是Eclipse的一个...
在本设计模式课程设计中,我们重点探讨了五个核心的设计模式:原型模式、单例模式、抽象工厂模式、代理模式和建造者模式。这些模式在Java编程中具有广泛的应用,能够帮助开发者创建更加灵活、可扩展和易于维护的代码...
2. **aip-java-sdk-4.2.0.jar**:这是核心的AIP Java SDK库文件,包含了所有用于与百度AI平台交互的类和方法。开发者需要引入这个jar文件到他们的Android项目中,才能使用SDK提供的功能。 3. **json-20160810.jar**...
总的来说,这个项目提供了从头开始构建一个NTRIP客户端的机会,涵盖了Android应用开发的多个方面,包括网络通信、协议解析、用户界面设计以及错误处理。对于想要深入理解Android开发和NTRIP协议的开发者来说,这是一...
Java 中的 Builder 设计模式是一种基本的创建型模式,它允许逐步构建复杂的对象。它将复杂对象的构建与表示分离,使得相同的构建过程可以创建不同的表示。 三、Builder 模式的详细解释及实际示例 实际示例: Java 的...
在Java开发中,设计模式主要分为三大类:创建型模式、结构型模式和行为型模式。创建型模式如单例(Singleton)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)和原型(Prototype)...
关于Java23种设计模式的有趣见解,是一个深入浅出探讨设计模式在实际场景中应用的例子集合。设计模式是软件工程中的重要概念,旨在解决软件开发中常见的问题,提高代码的复用性和可维护性。以下是对给定文件中提及的...
还需要定义类的接口和继承层次,建立对象间的关系,确保设计既符合当前需求又具有足够的灵活性以适应未来的扩展。 #### 二、设计模式的本质 设计模式的本质在于提供经过验证的解决方案,这些解决方案已经被多次...
在Java中,有23种经典设计模式,这些模式可以分为三类:创建型模式、结构型模式和行为型模式。下面,将详细解说这些模式,并结合提供的部分内容进行知识点阐述。 ### 创建型模式 创建型模式主要关注对象创建的机制...
Aspose.Words 是一个强大的文档处理库,专为Java开发者设计,用于创建、操作和转换各种文档格式。版本23.6是这个库的一个重要更新,它引入了对Java Development Kit (JDK) 17的支持。这意味着开发人员现在可以利用...
和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的 Java 语言基础上跃进一步,更重要的是,GoF 的设计模式反复 向你强调一个宗旨:要让你的程序尽可能的可重用。 这其实在向一个极限挑战:软件需求变幻...
Java Swing是Java GUI(图形用户界面)开发的一个重要组件,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。Swing提供了丰富的组件库,允许开发者创建美观且功能丰富的交互式用户界面。在这个...
【标题】: "手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip" 这个压缩包文件包含了搭建微服务开发环境所需的基础软件,包括JDK(Java Development Kit)和MySQL数据库。...
5. **加速开发过程**:设计模式提供了解决常见问题的标准模板,这使得开发者不必从头开始思考每一个解决方案。 ### 常见的设计模式分类 设计模式通常被分为三大类:创建型模式、结构型模式和行为型模式。 #### ...
在Java编程中,多文件上传是一项常见的功能,特别是在web应用中,用户可能需要上传多个文件,如图片、文档等。本示例"java-多文件上传dome"提供了一个工具包,可直接下载使用,方便开发者快速实现多文件上传功能。 ...
Java是一种广泛使用的面向对象的编程语言,其特点包括抽象、继承、封装和多态性。在Java笔试中,这些概念经常被考察。 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化的过程,分为过程抽象(方法)和...
List接口是Java集合框架中的核心接口之一,它继承自Collection接口,并具有特定的特性:元素可以重复,保持元素的顺序,并允许对元素的位置进行精确控制。List接口有多个实现类,包括ArrayList、LinkedList、Vector...