interface Inter { //格式不全的会用默认的格式 public int num = 100; public final int num2 = 99; //虽然会默认给出,但建议手动给出 public static final int num3 = 78; //会报错,接口没有构造方法 //public Inter() {} //接口方法中不能带有主体 //public void show() {} //这句虽然没有abstract,但是不会报错,因为默认 public abstract //public void show(); public abstract void show(); } //接口的实现类明明格式:接口名+Impl //约定俗成的,并不是说必须要这样写,但这样写容易看懂 class InterImpl implements Inter { public InterImpl() { super(); } //因为接口默认public ,而如果没有给出权限默认最低权限,所以报错。 //void show() {} //正确 public void show() { System.out.println("This is InterImpl implements Inter show()"); } } //实现Inter接口的第二个类,用来测试接口的是否适用java的多态特性 class InterImplB implements Inter{ public void show(){ System.out.println("This is InterImplB implements Inter show()"); } } public class TestInterfacePolymorphism { public static void main(String[] args) { Inter a = new InterImpl(); System.out.println(a.num); System.out.println(a.num2); System.out.println("-------------------"); //下面这两个都会报错,因为接口中的成员变量都为最终变量,不能被赋值 //a.num = 88; //a.num2 = 777; //接口中的成员变量可以通过接口名调用,说明是静态的 System.out.println(Inter.num); System.out.println(Inter.num2); System.out.println("-------------------"); //a = new InterImpl(); a.show(); a = new InterImplB(); a.show(); } }运行结果:
100
99
——————-
100
99
——————-
This is InterImpl implements Inter show()
This is InterImplB implements Inter show()