抽象类与接口的关系

 

 

含有abstract修饰符的class即为抽象类,抽象类不能创建实例对象。含有abstract方法的类必须定义为abstract class,abstract class中的方法不必是抽象的。abstract class中定义抽象方法必须在具体(Concrete)子类中实现。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的variable默认为public static final。选择如果抽象类和接口都可以使用,则优先使用接口,避免单继承的局限。

下表归纳了二者的主要差别:

序号区别点抽象类接  口
1基本定义包含抽象方法的类 抽象方法和全局常量的集合
2组成构造方法,抽象方法,普通方法,常量,变量常量,抽象方法
3使用子类继承抽象类(extends)子类实现接口(implements)
4关系抽象类可以实现多个接口接口不能继承抽象类,但允许继承多个接口
5常见设计模式模板设计工厂设计,代理设计
6对象都通过对象的多态性产生实例化对象
7局限抽象类有单继承的局限接口没有此局限
8实际作为一个模板作为一个标准或表示一种能力
9内部定义在抽象类中可以定义多个内部抽象类在接口中可以定义多个内部接口
11特殊一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类

转载于:https://www.cnblogs.com/ioveNature/p/6796834.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值