1、抽象类
抽象类注意事项
a、abstract修饰类(外部类只能用public、abstract、final修饰或者不修饰)
抽象类中的抽象方法用abstract修饰(此时不能有方法体否则报错)
b、抽象类中可以有具体方法,可以没有抽象方法
c、抽象类不能有实例,哪怕没有抽象方法
d、抽象方法只能用默认、public、protected修饰
子类继承抽象类
子类继承父类用extends
子类若想有实例必须实现(重写)所有父类的抽象方法,没有抽象方法就算了
2、接口
接口注意事项
a、interface定义的接口(接口只能用public或abstract,但是abstract加不加都行)
空接口也叫标记接口(接口可以没有抽象函数)
b、接口中定义的变量只能被public abstract final修饰,没写或没写全这三个词会自动加上
定义完就要赋值,毕竟全局变量要先定义嘛
需要注意的是,在jdk7及之前的环境下变量前需要加final否则报错,jdk8开始就自动添加了
c、接口中定义的函数只能被public+static\abstract\default,其中public可以省略
如果不写的话,默认为public abstract,没有方法体,可以被重写
写default默认为public default,有方法体,可以被重写
写static默认为public static,有方法体,如同普通类一样无法被重写
子类实现接口
子类实现接口用implements
子类若想有实例必须实现(重写)所有接口的抽象方法,没有抽象方法就算了