| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 接口(interface) -> 正文阅读 |
|
[Java知识库]接口(interface) |
目录 注:Java不支持子父类的多继承,但是接受接口的多重实现 接口的初步理解1、接口用interface进行定义 2、在Java中接口和类是并列结构 3、接口不能实例化 4、只有在实现了接口的类对于接口中的抽象方法全部都实现了之后,才能够成功实现 5、Java接口的出现弥补了Java中类的单继承的缺陷 6、接口实际上可以看作是一种规范和契约 接口的定义方式接口的定义方式又有一道分水岭 JDK7之前 接口成员 >全局常量:public static final >抽象方法:public abstract JDK8之后 除了全局变量和抽象方法之外,还有静态方法和默认方法(接口的定义越来越接近于类) 定义方式(Java7) 权限修饰词 interface 接口名{ 接口的成员 } 例如:
如图所示就是一个完整的接口,接口中的方法因为是抽象方法,就不能够有方法体 注:接口中绝对不能定义构造器,否则会报出“Interface cannot have constructors”即接口中不能含有构造器 还需要注意的点是,全局常量前面的public static final是可以省略的,抽象方法前面的public abstract都是可以省略的,因为只要写在接口中的方法和变量,就一定是全局常量和抽象方法
现在使用一个类去实现接口 实验接口如下
如果Person这个类不能将所有的方法进行重写,那么将会报出“Class 'Person' must either be declared abstract or implement abstract method 'slaap()' in 'inter'”即Person类必须声明在inter中的抽象方法或者在接口inter中的抽象方法sleep() 继承父类和实现接口也可以同时存在 class 类名 extends 父类名 implements 接口1,接口2,接口3…… 即为一个类,有且仅有一个父类,但是却可以实现无数接口 定义方式(Java8) Java8中除了定义全局常量和抽象方法之外,还能定义静态方法、默认方法,这两种方法不仅可以存在,还可以有方法体
由上所知,如何判断接口中的函数是不是抽象的,就是通过该函数是否有函数体来判断 注: 1、如果实现类已经重写了默认方法,调用后会调用重写方法 2、如果子类(或者实现类)继承的父类和实现的接口中声明了同名同参的方法,那么子类在没有重写此方法的情况下,默认调用父类中同名同参的方法(类优先原则) 3、如果实现类中继承了多个接口,而这些被继承的接口中都定义了相同的同名同参的方法,那么在实现类还没有重写之前就会报出接口冲突 4、如果想用调用接口中的被重写之前的默认方法:仍然利用super去调用(注:此处不能够使用“接口.方法”的方式去调用,只能用上述那种) 接口的使用
?
匿名实现类
接口延伸出的设计模式——代理模式为其他对象提供一种代理以控制对这个对象的访问 以下是例子,并进行解释 这里用网络连接作为一个例子
代理类仅负责控制于被代理类的连接,仅履行筛查工作,之后的连接工作仍在被代理类中实现,此时接口的作用就是提供一个规范的操作 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:16:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |