接口
接口也可以说成抽象类的抽象 可以说 接口比抽象类更加严格 接口要求子类必须重写接口的所有方法
接口是一种标准,所有实现该接口的子类都要实现这个标准。
接口也是一种契约,所有实现该接口的子类都要实现该契约。
接口也是一种身份特征,所有的子类都具有该身份特征。
接口的关键字 interface implements
public interface USBInterface
class Kingston implements USBInterface{}
接口里面的所有方法都是抽象的、公有的
public interface USBInterface { //接口代表里面的方法都是公有的、抽象的 不必写abstract 默认会为你加上abstract public void open() ; void close();//最标准写法 属性也不必写public 因为在接口里面的方法都是公有的 默认公有 }
class Kingston implements USBInterface{ @Override public void open() { System.out.println("-open->>"); } @Override public void close() { System.out.println("-close->>"); } public static void main(String[] args) { Kingston ton=new Kingston(); ton.open(); ton.close(); } }
//输出
-open->>
-close->>
interface InterfaceA
interface InterfaceB
class Subclass implements InterfaceA,InterfaceB
类可以实现多个接口
interface InterfaceA{ public void buyFruit(); } interface InterfaceB{ public void buyFood(); } class Subclass implements InterfaceA,InterfaceB { @Override public void buyFood() { // TODO Auto-generated method stub System.out.println("food"); } @Override public void buyFruit() { // TODO Auto-generated method stub System.out.println("fruit"); } }
这样的话 Subclass 类同时实现了两个接口
接口是可以继承接口的
例如、
interface InterfaceC extends InterfaceA{ public void buyCar(); } class SubclassB implements InterfaceC{ @Override public void buyFruit() { // TODO Auto-generated method stub } @Override public void buyCar() { // TODO Auto-generated method stub } }
SubclassB要实现接口C的话,必须重写C的方法和A的方法