區分多態與重載、接口與抽象類的異同點

 

多態與重載兩者之間的區別:
重載:是指 允許存在多個同名的函數,隻是這些函數的參數不同。重載的實現是:編譯器根據不同的參數列表,對同名的函數的名稱做修飾。對於編譯器而言,這些同名函數就成了不同的函數。它們的調用地址在編譯期就綁定了。

多態:是指子類重新定義父類的虛函數。當子類重新定義了父類的虛函數後,父類根據賦給它的不同子類,動態調用屬於子類的該函數,這樣的函數調用在編譯期間是無法確定的。

接口與抽象類:

兩者相似處:
1、兩者都包含可以由子類繼承的抽象成員;
2、兩者都 不能直接實例化。

兩者的區別:
1、抽象類除擁有抽象成員之外,還可有擁有非抽象成員;而接口所有的成員都是抽象的。
2、抽象成員可以是私有的,而接口的成員一般都是公有的;
3、接口中不能含有構造函數、析構函數、靜態成員和常量;
4、C#隻支持單繼承,即子類隻能繼承一個父類。而一個子類卻能夠繼承多個接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值