浅谈接口和抽象类的区别及联系

一 接口和抽象类的相似性

1 接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承。

2 接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。

二 接口和抽象类的区别

1 接口里只能包含抽象方法,静态方法和默认方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法。

2 接口里只能定义静态常量,不能定义普通成员变量,抽象类里则既可以定义普通成员变量,也可以定义静态常量。

3 接口不能包含构造器,抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。

4 接口里不能包含初始化块,但抽象类里完全可以包含初始化块。

5 一个类最多只能有一个直接父类,包括抽象类,但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承不足。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 抽象类 在继承的层次结构中,每个新子类都使类变得越来越明确具体。如果从一个子类追溯到父类,类就会变得更通用和抽象。...
    Steven1997阅读 5,271评论 0 5
  • 本文结合Java8,重新整理了接口和抽象类的区别,以及如何理解接口的设计目的。并且分析了Java8的接口新特性:d...
    _Zy阅读 7,654评论 0 7
  • 翻洋越海而来,只是为告诉了你那些关于我们的秘密。但我没有想到,你的离去竟然是一个没有结局的结局。 ...
    在下王焱阅读 4,940评论 13 58
  • part1 人最无力的是,不仅无法决定什么时候来到这个世界,也无法决定什么时候归于尘土。 只请了一天半的假。上午的...
    向知一阅读 962评论 0 0
  • 阴天,在不开灯的房间,所有的思绪都一点一点沉淀,爱情像是一种精神鸦片,寂寞是种无聊消遣。 阔别一年后的感觉又开始在...
    下水道宿管阅读 1,443评论 0 1