JavaSE-11.3.2【接口的成员特征】
package day2.yubaby03.p2; /* 3.3 接口的成员特征 成员变量 只能是常量 默认修饰符:public static final 构造方法 没有,因为接口主要是扩展功能的,而没有具体存在 成员方法 只能是抽象方法 默认修饰符:public abstract */ public class InterfaceDemo { public static void main(String[] args) { Inter i = new InterImpl(); // i.num = 30; //也error --> 接口中的成员变量默认都被final修饰了 System.out.println(i.num); // i.num2 = 30; //error final-->常量 System.out.println(i.num2); //可以通过接口名直接访问其成员变量 System.out.println(Inter.num); System.out.println(Inter.num2); } }
package day2.yubaby03.p2; public interface Inter { public int num = 10; public final int num2 = 20; //接口interface中的成员变量默认被public static final修饰, //即就算不手动键入,也会被自动修饰 //即该接口中"public static final int num3 = 30; "等价于"int num3 = 30;" public static final int num3 = 30; int num4 = 40; // public Inter(){} //error 接口中无构造方法 // public void show(){} //error 接口中的成员方法不能有方法体 //接口interface中的成员方法默认被public abstract修饰 public abstract void method(); //ok void show(); //ok }
package day2.yubaby03.p2; /*public class InterImpl implements Inter{ }*/ //上述等价于 public class InterImpl extends Object implements Inter{ public InterImpl(){ super(); //来自父类Object而不是接口Inter,接口无构造 } @Override public void method() { System.out.println("InterImpl : method()"); } @Override public void show() { System.out.println("InterImpl : show()"); } } /* Object类 类Object是类层次结构的根。 每个类都有Object作为超类。 所有对象(包括数组)都实现了这个类的方法。 Object类只有一个无参构造方法: public Object() //构造一个新对象 */