抽象类&&接口

64 阅读1分钟

抽象类

像是一个总称,如动物有猫有狗,他们都会吃东西,都有外形体貌,但却彼此不一样.抽象类这时候就像一个动物模板,定义了相同的方法,子类(猫狗)继承了不同的特性,须重写诸如吃东西,外形体貌等不同的具体实现方法.

eg:毕业论文模板,需要定义字体,边距,等等一系列的文本格式,这时候导师发的demo文档就像一个抽象类,里面包含了定义不能修改的一些东西,诸如文本格式(final修饰),也定义了需要学生完成的论文内容(abstract方法).

抽象类对比普通类,区别就是含有了抽象方法.使用abstract修饰,不能被实例化.

接口

成员方法==>public abstract (JDK89升级) 成员变量==>public static final 构造器==>无

JDK8升级
  • 1.解决接口升级带来的子类必须重写的问题.允许增加默认方法(含有方法体,子类不必重写) public default void demo(){...}
  • 2.允许静态方法,调用只能通过==>接口名.demo()调用
    public static void demo(){...}
JDK9升级
  • JDK8中静态方法的补充,由于接口名.demo()才能调,对其他类隐藏,故用private进行修饰