接口的特征
接口没有构造方法,不能被实例化。
public interface A{ public A( ) {...} void method(); }
接口的特征
一个接口不能实现另一个接口,但它可以继承多 个其他接口。
public interface A { void methodA(); } public interface B { void methodB(); } public interface C extends A,B{ //复合接口 void methodC(); } public interface C implements A { … }
由此可见,借助接口,可以方便地对已经 存在的系统进行自下而上的抽象。对于任 意两个类,不管它们是否属于同一个父类, 只要它们存在着相同的功能,就能从中抽 象出一个接口类型。
对于两个不同的系统,通过接口交互比通 过抽象类交互能够获得更好的松耦合。
public class Photographer { public void photograph(Camera tool,Target target){ tool.takePhoto(target); } } public class Photographer { public void photograph(Photographable tool,Target target){ tool.takePhoto(target); } }
public interface Photographable { }
接口的特征
接口中的成员变量默认都是public、static、 final类型,必须被显示初始化。 接口中的方法默认都是public、abstract类型 的。