抽象类:
必须用public或protected修饰抽象方法(不加为default),否则继承类无法实现
可以有构造方法
方法可以有实体
成员变量可以是各种类型的
可以有静态方法和静态代码块
不能创建对象
总的来说,抽象类就是比普通类多了一些抽象的东西,其他跟普通类一样。
接口:
方法默认只能是public abstract修饰
没有构造方法
成员变量默认只能是public static final修饰
不能有静态方法和静态代码块
不能创建对象
java中 抽象类单继承,接口多实现。
为什么抽象类中的抽象方法可以用protected修饰,接口不可以?
可能因为抽象类是通过继承实现的,而protected的最大作用范围是父子类,刚好符合这一要求,而接口中的方法只是类通过实现的方式来实现。也可以算是extends和implement的作用结果吧。