赞
踩
目录
接口技术用于描述类具有什么功能,但并不给出具体实现,当某个类要使用接口时,再去实现接口中的这些方法。类需要遵从接口中描述的统一规则进行定义,所以,接口是对外提供的一组规则,标准。
①定义接口要用到关键字interface,格式如下 :
interface 接口名 {
}
②类和接口之间不再是继承关系,而是实现关系,用implements关键字表示。如下 :
class 类名 implements 接口名 {
}
Δ需要注意的是:与类的定义类似,接口的访问权限修饰符只能是public或者默认。
IDEA中定义接口的步骤如下 :
1>先像平时创建类一样正常点击New——>Java Class;如下图所示 :
2>然后在弹出的窗口中选择Interface,输入接口名,回车即可。如下图所示 :
Δ接口中没有成员变量,只有公有静态常量。
即默认情况下属性前都会有 public static final 这三个关键字修饰。如下 :
public static final 数据类型 常量名 = 常量值;
Δ还记得我们在final关键字详解中讲到的——关于final修饰属性的初始化问题吗?
当时,我们说,final修饰的属性必须进行初始化,而对于公有静态常量(public static final),初始化的途径只有两条——①定义时显式初始化;②在静态代码块中初始化。但是很遗憾,接口中不允许存在代码块,而且接口没有构造方法。因此,这就要求我们在接口中定义公有静态常量时,必须在定义时就赋初值。否则IDEA报错。
演示 :
我们以DemoInterface接口为演示接口,在该接口中定义i变量,并定义Test类作为测试类,如下所示 :
可以看到,IDEA对于i变量前的三个关键字均作了灰色处理,表明这三个修饰符是默认的,你写不写它都在!在测试类中,我们尝试更改i变量的值,IDEA会马上报错,如下图所示 :
而可通过接口名来调用i变量也体现出static关键字的存在。
①在JDK7.0版本及其之前版本中,接口中仅支持公有的抽象方法:
public abstract 返回值类型 方法名();
Δ事实上,接口中的方法默认就是公有抽象方法,因此在接口中定义抽象方法时,可以省略掉abstract关键字。
②从JDK8.0开始,接口中可以由默认方法和静态方法:
默认方法——public default 返回值类型 方法名() {
}
静态方法——public static 返回值类型 方法名() {
}
Δ需要注意的是,想定义默认方法必须在前面添加default关键字,因为接口中的方法如果你什么都不写,默认是公有的抽象的方法。默认方法可以有方法体,且不需要实现类去实现,其实就是我们平时见到的普通的成员方法。但是默认方法是可以被实现类重写的。default关键字只能在接口中使用,就算实现类要重写默认方法,实现类中重写后的方法也不能添加default修饰符,不然IDEA报错。
③JDK9.0以后,接口中可以有私有方法 :
private 返回值类型 方法名() {
}
演示 :
我们以Demo2接口为演示接口,以Imple类作为Demo2接口的实现类,最后以Test2类作为测试类,代码如下 :
- package knowledge.port.characters.methods;
-
- public interface Demo2 {
- //①在JDK7.0版本之前,接口中仅支持公有的抽象方法:
- public abstract void hello_world();
-
- //②从JDK8.0开始,接口中可以由默认方法和静态方法:
- //默认方法
- public default void what_time() {
- System.out.println("姥姥——姥姥——几点啦?");
- }
- //静态方法
- public static double Sum(double x, double y) {
- return x + y;
- }
-
- //③JDK9.0以后,接口中可以有私有方法 :
- private void own() {
- System.out.println("这是声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/773033推荐阅读
相关标签
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。