通过网上收集和自己总结的:
- java中只可以继承一个类却可以继承多个接口。一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于Java语言的单继承性, 所以抽象类作为类型定义工具的效能大打折扣(只能是定义为一种类型,可以结合接口使用)。在这一点上,Java接口的优势就出来了,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接 口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。
- 抽象类可以提供一些方法的实现。Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供一些方法的实现,而Java接口不可以,这大概就是 Java抽象类唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java 接口做不到这一点,如果向一个Java接口里加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这 显然是Java接口的缺点。
- abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,体现的是继承的关系;interface表示的是"like-a"关系,体现的是一种契约关系,并不要求interface的实现者和interface定义在概念本质上是一致的。
综合以上几点:
抽象类:只可以继承一个抽象类,却可以提供一些方法的实现,体现的是继承关系。
接口:可以继承多个接口,却不能提供方法的实现,体现的是契约关系。
我们定义抽象类型的时候可以使用抽象类,定义一些次要行为时就可以使用接口。
AlarmDoor是一种(is-a)Door类型,拥有(like-a)Alarm提供的行为。
再举几个例子:
public class Cellphone extends Phone implements Bluetooth{
}
public class 电视机 extends 电器 implements 遥控器{
}
再看一下Collection接口,AbstractCollection定义为一个抽象类,继承了Collection接口,把接口中的size()和iterator()抽象化,其他方法实现。因此当一个具体的实现类继承AbstractCollection抽象类时只需实现size()和iterator()的具体实现就可以了。而不用每个方法都实现一次。
- 大小: 7.8 KB
分享到:
相关推荐
复习时,可以详细阅读`Java抽象类.docx`来理解抽象类的定义、用途和实例化规则,通过`Java接口.docx`学习接口的定义、实现方式以及多继承的特点,`Java内部类.docx`将帮助你掌握不同类型的内部类及其应用场景。...
Java 基础复习题涵盖了多个关键概念,包括对象实例化、类的 static 方法、抽象类、接口、事件处理模型等。以下是对这些知识点的详细解释: 1. 对象实例化:不同对象的实例变量分配的内存空间地址通常不同,这是因为...
本文档提供了JAVA基础知识的复习笔记,涵盖了JAVA的基础概念、数据类型、运算符、控制流程、类和对象、继承、多态、抽象类和接口等方面的知识。 一、数据类型 在JAVA中,有以下几种基本数据类型: * 整数类型:...
接口可以继承其他接口,抽象类可以实现接口,但不能继承另一个抽象类。 5. **接口的优点**:接口提供了一种定义行为规范的方式,无需实现,允许不相关的类共享相同的接口,增加了代码的灵活性和可扩展性。 6. **...
* 抽象类和接口的异同:抽象类和接口都不能够实例化,抽象类可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。抽象类中的成员可以是 private、默认、protected、...
本资源摘要信息涵盖面向对象程序设计的重要知识点,包括接口的声明和实现、类的继承和多态、抽象类和接口的使用、构造函数的重载、字符串比较和等于号的区别、多态和接口回调等。 1. 接口的声明和实现: 在面向...
复习题可能考察接口的定义、实现,以及抽象类和接口的区别。 9. **泛型**:泛型引入了类型参数,提高了代码的复用性和安全性。复习题可能涉及泛型类、泛型方法、通配符、类型擦除等概念。 10. **反射与注解**:...
复习题可能包括创建抽象类和接口,以及如何在实际编程中应用它们。 3. **异常处理**:Java的异常处理机制是程序健壮性的重要组成部分。复习题可能会涉及到try-catch-finally语句块,自定义异常,以及如何有效地处理...
这个PDF复习题涵盖了Java EE开发中的一些基础知识,包括字符编码处理、抽象类与接口的区别、线程概念与状态、ORM技术、Hibernate的核心接口、线程池的权重分类、JDBC与Hibernate的分页实现,以及Servlet的生命周期与...
* 编译器的使用:csc.exe /main:<类> 三、数据类型 * 值类型与引用类型的比较 + 值类型:存储在栈中,存储值,通过变量名引用 + 引用类型:存储在堆中,存储地址 * 类型转换 + 隐式转换:安全的转换 + 显式...
在本套复习资料中,包含历年10套接口技术考试试题,这些试题可以帮助学生全面理解并掌握接口技术的核心概念、原理及应用。下面将详细阐述相关知识点。 1. **接口的定义与分类**:接口可以被视为一种协议,规定了...
- 抽象类可以继承其他类和接口,接口只能继承其他接口。 - 接口支持多继承,抽象类只支持单继承。 - **定义抽象类**: - 使用`abstract`关键字。 - 可以包含抽象方法和已实现的方法。 - 不能实例化。 - **...
- 抽象类与接口:抽象类可以实现接口,实体类可以被抽象类继承,但实体类必须有公共构造器。 3. 抽象类与接口的区别: - 抽象类:包含抽象方法,部分或全部方法未实现。子类必须实现所有抽象方法。 - 接口:只有...
本文档是一个Java期末复习试卷,包含了多个选择题,涵盖了面向对象技术的多个方面,包括Java的基本语法、面向对象的概念、继承、多态、抽象类和接口等。本文档将对每个问题进行详细的解释和分析。 1. 有关Java文件...
Java是一种广泛使用的...以上就是Java期末复习题中涉及的主要知识点,涵盖了类、对象、继承、多态、接口、构造函数、抽象类和方法、数组、布局管理器等基础概念。理解并掌握这些概念对于学习和使用Java编程至关重要。
以上是根据题目内容整理的Java复习知识点,涵盖了抽象类、接口、多态、异常处理、数组操作和编程实践等多个方面。理解并熟练掌握这些概念和语法是成为Java程序员的基础。在实际编程过程中,还需要结合设计模式、并发...
选项C说明实现抽象类或接口的类必须实现所有方法,除非它是抽象类,这是正确的。选项D的错误在于,接口中的方法默认都是抽象的,不能在接口中提供具体实现,但在Java 8以后,接口可以包含default方法,提供了默认的...
子类继承抽象类必须实现所有的抽象方法,除非子类也是抽象类。 **接口**是一种完全抽象的类型,它只包含抽象方法和常量。接口可以被类实现,一个类可以实现多个接口,实现了接口的类必须实现接口中所有的抽象方法。...