抽象类和接口区别

一.抽象类和接口区别:

抽象类由abstract关键字来修饰,接口由interface关键字来修饰。

抽象类中除了有抽象方法外,也可以有数据成员和非抽象方法;

而接口中所有的方法必须都是抽象的(public abstract类型),接口中也可以定义数据成员,但必须是常量(public static final)。

抽象类可以有构造方法,接口不能有构造方法

抽象类速度比接口速度要快,接口是稍微有点慢的,因为它需要时间去寻找在类中实现的方法。

与正常Java类的区别除了你不能实例化抽象类之外,它和普通Java类没有任何区别;接口是完全不同的类型


/*

参考资源http://blog.csdn.net/wei_zhi/article/details/52736350

https://www.cnblogs.com/jizuiku/p/7466609.html

*1.如果一个类中含有抽象方法(abstract),你还不定义为抽象类abstract,必然报错

*2.抽象方法中没有方法体

*3.抽象类中可以不含有抽象方法

*4.抽象类无法直接进行实例化操作,需要依靠子类采用向上转型的方式处理 ->TestDemo

*5.抽象类中方法只含有public,protected,不能含有private,不写默认为public

*6如果抽象类中方法用的是protected,则子类可以重写为public或protected;如果抽象类中方法用的是public,则子类可以重写为public

*7.子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。);

*8.抽象类可以有构造函数,子类必须也有构造函数并且如果继承有参数的构造函数不用super则会报错

*9.抽象类可以用final声明么?

不能,因为抽象类必须有子类,而final定义的类不能有子类;

*10.抽象类可以有成员变量,当然public和protected,不能是private,final,而且可以是静态static

*11.抽象类方法也可以是static

* */



/*

在Java中,一个抽象类只能继承一个抽象类,但一个接口却可以使用extends关键字同时继承多个接口(但接口不能继承抽象类)。

由此可见,从继承关系来说接口的限制比抽象类少:

(1)一个抽象类只能继承一个抽象父类,而接口可以继承多个接口;

(2)一个子类只能继承一个抽象类,却可以实现多个接口(在Java中,接口的主要功能是解决单继承局限问题)

*/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 从一个副驾驶一直渴望着有自己的一辆车,我想每个热血或者温热的血的少年都会有类似的情节吧。 特别是在节奏特别快的生活...
    南方小政阅读 3,471评论 0 0
  • 茶是悦人,更是悦己。 从认识一片树叶开始,慢慢学会优雅地面对生活,学会在纷乱的世间给自己的心灵留一片净地,去看、去...
    秋风玲玎阅读 1,535评论 1 2
  • 男人总要有一个女儿,才能感受那万千柔情。那古代的才子要用怎样的笔触写自己的女儿呢?这是好久前想做的一个选题,因着扫...
    齐婴宁阅读 13,453评论 7 32
  • 利润:销售收入与成本的差额 销售收入:菜品销售收入+商品销售收入+外卖销售收入+其他收入
    爱上小炒阅读 3,142评论 0 0

友情链接更多精彩内容