接口详解例子代码(附Java1.8的接口新特性)

接口,与抽象类类似但是区别也很大,他们都是标签,用来提醒父类一定要实现的类里创建抽象方法。而接口类可以implements 多个接口,抽象类则只能父类只能继承一个抽象类,与抽象不同的是它不是继承组合关系,所以无法使用super关键字来调用接口里的方法,

接口的要求:

1.接口类必须使用interface关键字创建

2.接口类的父类必须使用implements来附属接口类

3.一个父类可以implements 多个接口(而抽象类的父类只能继承一个抽象类)

4.接口的所有量都是常量,接口类里会将量自动添加static final  关键字。

5.接口里的抽象方法在使用的时候必须需要在父类中重写

6.在Java1.8的新版本中,接口可以用default关键字在接口类中实现方法。而实现的方法不需要在父类中重写

7.接口中常量的调用可以直接用接口类调用也可以实例父类后调用,但是重写的抽象方法或者实现方法不行,必须new父类后实现。

package rom;

import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.WindowConstants; public class Xamle_1 implements demo {
public void demo1() {
System.out.println("重写接口里的demo1"); }
public void demo1_2() {
System.out.println("重写接口里的demo1_2"); } public static void main(String[] args) {
Xamle_1 xamle_1 = new Xamle_1();
xamle_1.demo1(); //调用重写后的demo1方法
xamle_1.demo2(); //用new的实例类,在接口中直接调用关键字default修饰的已经实现的方法,此方法不需要重写
System.out.println("调用接口中的常量:"+demo.a);//只有常量可以不用new 一个实例类,直接用接口类调用
System.out.println("调用接口中的常量:"+xamle_1.b); //用 new的实例类调用常量b }
}
interface demo {
public void demo1() ; //在接口中可以不写abstract关键字,因为接口中的抽象方法已经默认写了abstract
abstract public void demo1_2(); //与上面对比
default void demo2() {
System.out.println("default 关键字在接口中实现方法"); }
public static final int a = 100;
public static int b = 100; //虽然没有写但是接口的常量会默认写上final,所以接口中的常量是无法修改的 }
上一篇:10 Zabbix Item类型之Zabbix IPMI类型


下一篇:atitit.微信项目开发效率慢的一些总结