java:抽象类与接口的姻缘

简介: 阅读前请先阅读前面的两篇文章继承的目的及缺陷继承与抽象类的关系interface 使抽象类向前更进了一层。abstract关键字可以在类中创建一个或者多个抽象方法,这些抽象方法没有具体实现,而这些方法的实现是由此类的继承者来创建。

阅读前请先阅读前面的两篇文章
继承的目的及缺陷
继承与抽象类的关系

interface 使抽象类向前更进了一层。abstract关键字可以在类中创建一个或者多个抽象方法,这些抽象方法没有具体实现,而这些方法的实现是由此类的继承者来创建。以上抽象类的特征就可以引出关键字"interface"了。因为interface定义的类是一个完全抽象的的类,它根本没有实现任何方法,而抽象类实现了部分方法。

接口只提供形式,而未提供任何具体实现。接口是用来建立类与类之间的协议

接口的性质:接口不仅仅是一个极度抽象类,它还可以创建一个能被向上转型为多种基类的类型,来实现变种的特性。

接口协议样例

image.png

从Woodwind和Brass可以看到,只要实现了接口就变成了一个普通的类,就可以按照常规方式拓展。他们中的方法 paly what不管你在前面加不加public修饰,它都必须是public访问权限。改为其他访问权限编译器就会报错。再向上转型为Instrument接口时,都不会有问题。它的行为都是相同的。

目录
相关文章
|
16天前
|
Java
Java中的抽象类:深入了解抽象类的概念和用法
Java中的抽象类是一种不能实例化的特殊类,常作为其他类的父类模板,定义子类行为和属性。抽象类包含抽象方法(无实现)和非抽象方法。定义抽象类用`abstract`关键字,子类继承并实现抽象方法。抽象类适用于定义通用模板、复用代码和强制子类实现特定方法。优点是提供抽象模板和代码复用,缺点是限制继承灵活性和增加类复杂性。与接口相比,抽象类可包含成员变量和单继承。使用时注意设计合理的抽象类结构,谨慎使用抽象方法,并遵循命名规范。抽象类是提高代码质量的重要工具。
29 1
|
1月前
|
Java
【Java】一个简单的接口例子(帮助理解接口+多态)
【Java】一个简单的接口例子(帮助理解接口+多态)
17 0
|
1月前
|
Java
JAVA接口
JAVA接口
12 0
|
5天前
|
Java 开发者
探索 Java 的函数式接口和 Lambda 表达式
【4月更文挑战第19天】Java 中的函数式接口和 Lambda 表达式提供了简洁、灵活的编程方式。函数式接口有且仅有一个抽象方法,用于与 Lambda(一种匿名函数语法)配合,简化代码并增强可读性。Lambda 表达式的优点在于其简洁性和灵活性,常用于事件处理、过滤和排序等场景。使用时注意兼容性和变量作用域,它们能提高代码效率和可维护性。
|
6天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
8 0
Java接口中可以定义哪些方法?
|
8天前
|
设计模式 Java
Java接口与抽象类
Java接口与抽象类
17 0
|
12天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
34 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
14天前
|
存储 Java
java接口和内部类
java接口和内部类
|
16天前
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function<T, R>`用于转换操作,`Predicate<T>`用于布尔判断,`Consumer<T>`用于消费输入,`Supplier<T>`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
29 0
|
16天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
40 0