面试题 汇总各大厂BAT面试题 经典题汇总 2020-05-03更新
程序员文章站
2024-03-24 10:03:34
...
1.抽象类和接口有什么区别?
答:抽象类和接口很相似,有时候甚至可以互换,但是也有很大的区别。
1.接口是公开的,不能有私有,抽象类可以有私有。
2.如果一个类中有抽象方法,那么他必须是抽象类。
3.接口中的所有方法都没有方法体。
4.抽象类可以声明方法的存在而不去实现它
5.抽象类的子类实现方法必须有相同或者更高级别的访问级别
6.抽象类不能被实例化,可以创建一个对象指向其具体子类的一个实例
7.抽象类的子类实现父类所有的抽象方法,否则他们也是抽象类
**相同点:**
1.都不能被实例化
2.接口的实现类或者抽象类的子类只有实现了他们各自的方法后才能被实例化
**不同点**
1.接口只能定义方法,不能实现,抽象类可以
2.关键字不同,抽象类是extend继承,接口是implements实现
3.一个类可以实现多个接口,不能继承多个抽象类
4.接口中的成员变量默认public static final,必须给初值,所有成员方法都是public abstract
抽象类中的成员变量默认是default,也可以是其他的三个,抽象方法必须是抽象方法,前面加abstract