接口和抽象类的区别

抽象类和接口是什么

抽象类

  1. 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法
  2. 抽象类不能被实例化
  3. 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类
  4. 具体派生类必须覆盖基类的抽象方法
  5. 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们

接口

  1. 接口不能被实例化
  2. 接口只能包含方法声明
  3. 接口的成员包括方法、属性、索引器、事件
  4. 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员

接口和抽象类的区别

  • 接口里只能包含抽象方法,静态方法和默认方法(加default),不能为普通方法提供方法实现;而抽象类则完全可以包含普通方法,接口中的普通方法默认为抽象方法。
  • 抽象类中的成员变量可以是各种类型的;而接口中的成员变量只能是public static final类型的。
  • 接口不能包含构造器;抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。
  • 一个类只能继承一个抽象类;而一个类却可以实现多个接口
  • 接口里不能包含初始化块,但抽象类里完全可以包含初始化块。
接口抽象类区别主要有以下几点: 1. 方法实现:接口中的所有方法都是抽象的,只能定义方法而不能实现;而抽象类可以定义抽象方法,也可以实现方法。 2. 继承和实现:抽象类需要被子类继承,而接口需要被类实现。一个类只能继承一个抽象类,但可以实现多个接口。 3. 成员变量和方法:接口中的成员变量都是公共的静态常量,而抽象类中的成员变量可以是普通变量。接口中的方法都是公共抽象的,而抽象类可以有抽象方法也可以有普通方法。 4. 抽象方法和抽象类:抽象方法只能声明而不能实现,而抽象类可以有抽象方法也可以没有。 5. 实例化:抽象类接口都不能直接实例化,需要通过子类或实现类来实例化。 综上所述,接口强调的是功能和能力,只能定义抽象方法和静态常量;而抽象类强调的是所属关系,可以定义抽象方法和普通方法,也可以有成员变量。 #### 引用[.reference_title] - *1* [接口抽象类有什么区别](https://blog.csdn.net/weixin_33953384/article/details/91866798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [接口抽象类区别](https://blog.csdn.net/Rowley123456/article/details/109020901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [接口抽象类区别](https://blog.csdn.net/qq_58772217/article/details/121542021)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值