什么是默认方法
默认方法是JDK8新特性,指的是接口也可以提供具体方法了,而不像以前,只能提供抽象方法。
为什么会有默认方法
原来的类不用改动就都能得到相同的一种方法。可以方便扩展新的类,而且不影响别的类。
注意
当一个类实现两个接口并且两个接口中有相同的默认方法时,必须在类中override默认方法。要不然编译器无法判断使用谁的默认方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| public interface AD { public void physicAttack();
default public void attack(){ System.out.println("default method attack"); } }
public interface AP { public void magicAttack();
default public void attack(){ System.out.println("default method attack"); } }
public class ADAPHero extends Hero implements AP,AD,Mortal{
@Override public void physicAttack() { System.out.println("进行物理攻击"); }
@Override public void magicAttack() { System.out.println("进行魔法攻击"); }
@Override public void die() { System.out.println(name +" is an APADHero and die."); }
public void attack(){ System.out.println("ADAP attack"); } }
|