抽象类使用的原因小记,接口中的静态方法
①让接口和实现类分离,更加具有规范性
②具有一种提示作用,抽象类中定义的抽象方法都是需要子类实现的,接口定义了很多的规范,但是没有具体的实现,如果不考虑默认方法的话,但是在这种情况下,如果大多数类都有某个指定性的方法的话,可以让抽象类去实现接口并且实现这个方法,(当然抽象类可以实现这个接口但是不实现接口的方法),所以可以指定其中的通用性的行为去实现,并将更具有不同性的方法包装成抽象方法让子类去多态性的实现,这也是一种层次性的抽象设计实现。这样子实现类就可以获取这种常态性的行为,并且可以多态地实现自定义的方法。
接口中的静态方法不允许被实现类继承,只能供接口自己调用,并且接口中的静态属性是可以被实现类继承的,但是不可被修改,因为接口既然是规范,里面的属性都是默认被static final修饰的:
public interface interface1 { String str = "你好"; static void interfaceFunction() { System.out.println("hello"); } }
public class InterfaceStaticFieldTest implements interface1 { public static void main(String[] args) { InterfaceStaticFieldTest cc = new InterfaceStaticFieldTest(); // 接口中的静态方法并不会被实现类继承,只供接口自己调用实现 interface1.interfaceFunction(); // 接口中的静态属性是可以被实现类继承的,不可被修改 System.out.println(cc.str); } }