Java -- 接口
2022/2/26 14:21:21
本文主要是介绍Java -- 接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java -- 接口
基础语法
-
接口属于引用数据类型,编译之后也是字节码文件
-
接口完全抽象(抽象类是半抽象),可以理解接口是特殊的抽象类
-
接口的定义方法
[修饰符列表] interface 接口名{}
-
接口支持继承,而且是多继承
/* * 接口支持多继承 */ public class Test01{ public static void main(String[] args) { } } interface A{ } interface B{ } interface C extends A, B{ }
-
接口中只包含两部分:常量、抽象方法【不信可以尝试其他】
-
接口中的所有元素都是public修饰【都公开】
-
接口中的抽象方法定义可以不用public abstract修饰符省略
-
接口中抽象方法不能有方法体
-
接口中的常量可以省略public static final修饰符
/* * 接口 */ public class Test01{ public static void main(String[] args) { System.out.print(MyMath.PI); } } // 数学接口 interface MyMath{ // 常量 public static final double PI = 3.14; int K = 100; // 抽象方法 public abstract int sum(int a, int b); double sum(double a, double b); }
-
类与类之间是继承
extends
,类和接口之间是实现implements
-
类实现接口时不要忘了实现其中的抽象方法,抽象类实现接口可以不用
public class Test02{ public static void main(String[] args) { MyMathImpl test = new MyMathImpl(); // 面向接口编程 // 接口应用到多态中 int result1 = test.sum(10, 20); System.out.println(result1); int result2 = test.sub(20, 10); System.out.println(result2); } } // 数学接口 interface MyMath{ double PI = 3.14; int sum(int a, int b); int sub(int a, int b); } class MyMathImpl implements MyMath{ // 不能省略public,访问权限不能比实现接口中的实现方法更低 public int sum(int a, int b) { return a + b; } public int sub(int a, int b) { return a - b; } }
-
一个类可以实现多个接口
-
这种机制弥补了Java中的什么缺陷?
Java中类和类只支持单继承,但现实中更多的是需要多继承。
Java中的接口弥补了这一缺陷
-
继承与实现都在时,
extends
在前,implements
在后 -
接口通常提取行为动作
接口在开发中的作用
接口在开发中的作用,类似于多态在开发中的作用
多态:降低程序耦合度,提高程序的可拓展性,应该遵守OCP原则(对拓展开发,对修改关闭)
接口在开发中的作用:
-
面向抽象编程,应该是面向接口编程
有了接口就有可插拔【拓展性强】,不要焊死
-
接口可以解耦合
-
任何接口存在调用者和实现者,接口可以对两者进行调解
这篇关于Java -- 接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?