抽象类(abstract class)和接口(interface)有什么异同?

本文探讨了接口和抽象类在成员特点、关系特点以及设计理念上的差异。接口不包含构造方法,只有常量和抽象方法,适用于likea的关系,强调扩展功能。抽象类则可以有构造方法、常量和抽象及非抽象方法,体现isa的关系,关注继承体系的共性功能。类可以单继承但多实现接口,而接口之间可单继承或多继承。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)成员特点:

①构造方法:接口没有;抽象类有;

②成员变量:接口中只有常量;抽象类中常量、变量都可;

③成员方法:接口只有抽象方法;抽象类中抽象方法、非抽象方法都可;

(2)关系特点:

①类与类:只有单继承,但可以多层继承;

②类与接口:实现关系,可以单实现,也可以多实现;

③接口与接口:继承关系,可以单继承,也可以多继承;

(3)设计理念:

①接口是简单工厂设计模式,like a的关系 ,接口中定义的是该继承体系的扩展功能;

③抽象类是模板设计模式,is a的关系,抽象类中定义的是继承体系的共性功能;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值