亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么obsrever定義成了接口,但是subject定義成了父類?

為什么obsrever定義成了接口,但是subject定義成了父類?

正在回答

2 回答

接口和抽象類都是所謂的代碼復用時使用。

在使用時,要優先注意繼承和接口概念,所有子類是一類事物(有兄弟關系)時,才應該是繼承關系,不是一類事物就不要繼承改用接口比較好;

當不符合繼承條件時,使用接口,接口可以理解為標準,只定義大致方向,不論具體實現的時候使用;

當符合繼承條件時,且你至少有一個方法是具體實現的時候,即已知時,可以考慮使用抽象類;

我個人理解是,接口更像是人為定義一系列的行為,是一種賦予的感覺;父類(抽象類)是人為抽取共性,是一種提煉的感覺。

至于優先級,都是看具體情況的,不過接口總體來說是比繼承要靈活,畢竟是多實現、單繼承。

當然還有接口和繼承都用的情況,這能實現更多變的情況。

多寫項目,遇到代碼重復的時候,就多想想,慢慢就懂得接口和繼承的好處和運用了。


3 回復 有任何疑惑可以回復我~
#1

慕粉1149573729

那個抽象類,按定義,應該說至少有一個抽象方法才對
2018-06-19 回復 有任何疑惑可以回復我~

subject里面的方法是目標對象通用的,同時也是清楚的,所以定義成父類,則其具體目標對象就擁有了所有通用方法;

obsrever則是提供一個標準行為updata,是未實現方法,其具體實現方法需要根據具體的觀察者行為才能定義,所以應該為接口;

2 回復 有任何疑惑可以回復我~
#1

慕移動6842083 提問者

感謝!我感覺什么時候用接口,什么時候用抽象類,有點迷糊了,接口還是抽象類優先呢?
2018-06-19 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么obsrever定義成了接口,但是subject定義成了父類?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號