Interface EG:
public interface A {
public abstract void showA();
**public abstract void **show();
**public default void **methodA() {<br /> }
**public default void **method() {<br /> }
}
public interface B {
public abstract void showB();
**public abstract void **show();
**public default void **methodB() {<br /> }
**public default void **method() {<br /> }<br />}
public class C implements A, B {
@Override
public void showA() {
System.out.println(“showA”);
}
@Override<br /> **public void **showB() {<br /> System.**out**.println(**"showB"**);<br /> }
_//若存在同名的抽象方法,只需要重写一次_<br />_ _@Override<br /> **public void **show() {<br /> System.**out**.println(**"show"**);<br /> }
_//接口有多个默认方法时,实现类都可继承使用,如果默认方法重名,必须重写一次_<br />_ _@Override<br /> **public void **method() {<br /> System.**out**.println(**"重写默认方法"**);<br /> }
注意:
- 接口可以多继承,子接口重写默认方法是,default关键字可以保留,本例中子类重写默认方法时,default关键字不可以保留。
- 接口中,存在同名的静态方法并不会冲突,原因是通过各自接口名访问静态方法。
**优先级问题**
当一个类,既继承父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近执行父类的成员方法。
其他成员特点
- 接口中无法定义成员变量,但是可以定义常量,默认使用public abstract final修饰
- 接口中没有构造方法,不能创建对象
- 接口中没有静态代码块