簡體   English   中英

我應該擴展什么類,AcionBar或ActionBarImpl?

[英]What class should I extend, AcionBar or ActionBarImpl?

我覺得這是一些技巧的基本問題。
我想擴展ActionBar的功能,在查找ActionBar代碼后,事實證明ActionBar是一個抽象類,而真正的實例化類是ActionBarImpl。
在Android源代碼中廣泛使用這種具有抽象和Impl的實現方式。
開發人員站點沒有詳細介紹,但始終將抽象類描述為已實現類。
我從嚴格的Java語言角度來看,我應該擴展ActionBarImpl,否則我將無法調用super方法,但是我從未見過擴展<class>Impl類的示例。
救命。

在這種情況下,抽象和實現之間的唯一區別可能是抽象方法。 如果實現類提供的默認行為是可以接受的,那么我可以說擴展它並覆蓋您需要的其他方法。

如果您想要的抽象方法行為意味着您根本無法使用實現,請擴展抽象類。

是的,您應該將Impl類擴展為擴展,因為如果擴展抽象類,則將必須提供抽象方法的實現,並且如果您不是要“更改”現有行為,而只是“擴展”或添加新行為,則可以更好地擴展Impl類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM