如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。 接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现 可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。 接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的 定义接口 修饰符 interface 接口名 [extends 父接口列表] { 常量域声明 抽象方法声明 } class cat implements Animal { public void shout () { System.out.print(“喵喵”); } } 实现接口 implements 一个类可以实现若干个接口 非抽象类必须实现所有的抽象方法 interface prt { public void prtln(); } class A implements prt{ int a = 3; public void prtln() { //输出a; } } class B implements prt{ int b = 4; public void prtln() { //输出b; } } public class MyInterfaceDemo { public static void dost(prt c) { c.prtln(); } public static void main(String[] args) { A a1 = new A(); B b1 = new B(); MyInterfaceDemo.dost(a1); MyInterfaceDemo.dost(b1); } } |