抽象类与接口的区别

1. 抽象类(abstract)

(1)不能被实例化,只能被继承

(2)抽象类中不一定包含抽象方法,但是包含抽象方法的类一定是抽象类

(3)抽象方法的修饰符只能是public、protected或default

(4)一个子类继承了抽象类,则必须实现该抽象类中所有的抽象方法,如果不实现则必须将该子类定义为抽象类

(5)抽象类中可以包含属性,方法,构造方法,但是构造方法不能用于实例化对象,只能被子类调用

2. 接口(interface)

(1)接口中可以包含变量和方法,变量隐式指定为public static final,且必须指定初始值,方法隐式指定public abstract

(2)一个类实现了接口,则必须实现该接口中的所有抽象方法,如果不实现则必须将该类定义为抽象类

(3)接口中的方法可以是抽象方法,静态方法,默认方法,但不能是普通方法,普通方法默认为抽象方法

posted @ 2022-04-01 12:22  shaun23  阅读(40)  评论(0)    收藏  举报