抽象类
1. 抽象类用abstract 来定义,一般是public abstract class + 类名;
2. 抽象类里面可以写一般的方法,也可以写抽象方法,抽象方法只能用public或者protected修饰;
3. 抽象类不能被实例化,只能通过其他的类继承抽象类,然后通过实例化这个类来实现里面的抽象方法,如果这个类不能包含抽象类里面所有的抽象方法,那么这个类必须也成为抽象类;
4.抽象类使用extends关键字,接口使用implements关键字
接口
1. 接口是一种极端的抽象类,即只包含抽象方法和常量,写接口不用 abstract class,而是使用 interface ;
2. 和抽象类一样,接口也不能被实例化,只能通过其他的实现类来实现接口里面的所有抽象方法;
3. 一个接口可以继承多个接口,一个类可以实现多个没有关系的接口;
4.实现类若implement一个继承了其他接口的接口,那这个实现类还是需要实现所有(包含那个被继承的接口)的抽象方法;
5.接口中默认的访问权限为public,所以重写接口的方法的访问权限不能小于public,故只能为public
抽象类与接口
1.由抽象类来实现接口,则不必重写接口的方法。可以全部不重写或只重写一部分方法。