C++学习轨迹之再谈抽象类和接口类

本文探讨了抽象类和接口在编程中的概念和作用。抽象类用于抽象共同属性和方法,但无法实例化,具体实现由子类完成。接口则更专注于行为的定义,如Java中的interface,允许类实现多个接口。抽象类和接口的选择取决于需求的灵活性和耦合度,接口提供更轻量级和灵活的扩展方式。在Java中,一个类只能继承一个抽象类,但可以实现多个接口,这反映了类的单一继承特性与行为的多样化。

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

1.抽象类它是一个特殊的类,来源于将所有类相同但又无法确定的属性和方法抽取出来归为一个类中,具体实现由其继承的子类实现,比如睡觉这个行为,是普遍的,但具体实现却不能统一实现,因为会由具体个体不同实现的方式不同。JAVA用abstract修饰来表示抽象类和抽象方法(未具体实现的方法不确定),C++用虚函数实现即只要该类中还有虚函数,那么该类就是一个抽象类,即不是一个完整的类。
2.接口是对行为的抽象,比如吃,C++中通过抽象类实现,它是一个概念;JAVA中通过interface实现。
3.所以一个类只能继承一个抽象类,但却可以继承多个接口类,要么你是人,要么你不是人,吃这个行为,人可以,动物也可以。
4.接口比较轻量级,相对比较灵活,即插即用,不会对系统本身有质的影响,继承接口类和继承一个普通的类代价是不一样的,继承接口类就像相当于嵌入式,只需要嫁接我需要的那部分功能,其他功能砍掉,而继承普通类比较笨重,还需继承自身并不需要的部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值