首页 > 编程语言 > 详细

Java-接口

时间:2021-09-16 15:33:25      阅读:31      评论:0      收藏:0      [点我收藏+]

基本介绍

注意事项和细节

接口 VS 继承类

接口的多态特性

练习


【基本介绍】

接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来

//语法:
interface 接口名{
	//属性
	//方法(1.抽象方法;2.默认实现方法;3.静态方法)
}

class 类名 implements 接口{
	自己属性;
	自己方法;
	必须实现的接口的抽象方法
}

小结:
(1)在JDK 7.0 前,接口里的所有方法都没有方法体,即都是抽象方法

(2)JDK 8.0 后接口类可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现

在接口中,抽象方法可以省略abstract关键字

在jdk8以后,可以有默认实现方法,需要使用default关键字修饰;可以有静态方法


【注意事项和细节】

(1)接口不能被实例化。

(2)接口中 所有的方法是 public 方法,接口中抽象方法,可以不用 abstract 修饰。

(3)一个普通类实现接口,就必须将该接口的所有方法都实现

(4)抽象类实现接口,可以不用实现接口的方法

(5)一个类同时可以实现多个接口

(6)接口中的属性,只能是 final的,而且是public static final 修饰符

技术分享图片

(7)接口中属性的访问形式:接口名.属性名

(8)一个接口不能继承其他的类,但是可以继承多个别的接口

(9)接口的修饰符 只能是 public 和默认,这点和类是一样的


【接口 VS 继承类】

(1)接口和继承解决的问题不同

继承的价值主要在于:解决代码的复用性和可维护性。

接口的价值主要在于:设计,即设计好各种规范(方法),让其他类去实现这些方法。即更加的灵活

(2)接口比继承更加灵活

继承是满足 is-a 的关系,而接口只需要满足 like-a的关系

(3)接口在一定程度上实现代码解耦

(即接口规范性 + 动态绑定机制)

技术分享图片

好比继承关系就是 父子关系,接口就是 师徒关系


【接口的多态特性】

(1)多态参数

接口引用可以指向实现了接口的类的对象

技术分享图片

(2)多态数组

技术分享图片

(3)接口存在多态传递现象

技术分享图片

这里编译会报错,因为 Teacher类并没有实现 IH 这个接口

技术分享图片

IG继承了IH,相当于Teacher也实现了IH这个接口,这就传递过来了


【练习】

技术分享图片


技术分享图片

解:如果想调用父类的 x ,应该用super.x
       如果想调用接口的 x ,应该用 A.x(C.x不行,为什么,不知道,x不是静态属性,若按上一个练习中,C.x也可以用)


this.x不行,为什么:
技术分享图片

技术分享图片
如图,接口也可以认为是一个父类,this.x在本类没有的情况下,会往实现的接口上去找

技术分享图片


但是 B 的 x 属性也不是设置为 static 的,即不能直接用 B.x 来用
技术分享图片

Java-接口

原文:https://www.cnblogs.com/ffforward/p/15267018.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!