欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

抽象类和接口的区别面试答案,很全面

程序员文章站 2023-03-27 16:53:33
最近在面试过程中,遇到许多抽象类和接口的面试题,所以今天特意研究了下,然后写出来分享给大家,希望对面试的朋友有帮助,如果觉得写的可以点个赞吧! 1:抽象类可以实例化,抽象类可以通过子类间接的实例化父类,接口不能实例化。 2:抽象类可以拥有私有属性、方法,接口不能拥有。 3:抽象类方法不能使用defa ......

最近在面试过程中,遇到许多抽象类和接口的面试题,所以今天特意研究了下,然后写出来分享给大家,希望对面试的朋友有帮助,如果觉得写的可以点个赞吧!

1:抽象类可以实例化,抽象类可以通过子类间接的实例化父类,接口不能实例化。

2:抽象类可以拥有私有属性、方法,接口不能拥有。

3:抽象类方法不能使用default关键字 修饰,接口方法可以。

3:抽象类只能被extends不能被implements,接口可以被implements和extends

5:接口没有构造方法,抽象方法有

6:接口不占用堆空间,抽象类占用堆空间。

7:接口所有变量都是public static final 不可变, 抽象类可以使用任意权限修饰符修饰变量。

8:抽象类不能多extends,接口可以多extends

9:抽象类抽象方法可以被public, protected修饰,接口抽象类只能被public 修饰

10:private 可以修饰内部类,private 不能修饰内部接口

个人想法:可以使用接口代替工具类,有些情况可以代替抽象类。接口支持多继承,支持方法重写。接口不能实例化,抽象类和工具类可以通过反射实例化