Java接口的定义与使用

一、接口的定义中,可以有哪些内容?

如果是java7,接口中可以包含:

1、常量,可以省略public static final关键字。

public static final int NUM_OF_EXAMPLE = 10;

2、抽象方法,可以省略public abstract关键字。(实现类必须重写接口中的所有抽象方法,除非他是一个抽象类)

public abstract void methodAbstract();

如果是java8,接口中可以包含:

3、默认方法,可以省略public关键字,可以被实现类对象调用,也可以被实现类重写。

public default void methodDef(){
    System.out.println("defaultMethod");
}

4、静态方法,可以省略public关键字,只能用接口名称调用。

public static void methodSta() {
    System.out.println("static");
}

如果是java9,接口中可以包含:

5、私有方法,静态和非静态都可以。

private void MethodPri1() {
    System.out.println("static");
}

private static void MethodPri2() {
    System.out.println("static");
}

 二、使用接口时,需要注意:

1、接口是没有静态代码块或者构造方法的;

2、一个类的直接父类只有一个,但是可以实现多个接口,用逗号隔开;

3、如果实现的多个接口中有重复的抽象方法,则实现类只用重写一次;

4、如果实现类没有重写接口的所有抽象方法,则它必须是一个抽象类;

5、如果不同的接口中存在重复的默认方法,则实现类必须对这个方法进行重写;

6、一个雷如果直接父类的方法和接口的方法产生了冲突,(类对象同时可以调用),优先父类。

三、接口是支持多继承的

public interface MyInterface extends Interface1, Interface2{

}

接口的抽象方法数量等于他自己的方法+所有的父接口方法,再去除重复的方法。

1、多个父接口中的抽象方法如果重复,没关系。

2、多个父接口中的默认方法如果重复(产生冲突),接口必须重写该默认方法,并且要带default关键字。

posted @ 2020-06-17 14:31  maider  阅读(761)  评论(0编辑  收藏  举报