我应该扩展什么类,AcionBar或ActionBarImpl?

时间:2013-07-14 23:38:57

标签: java android android-actionbar class-extensions

我认为这是一个基本的问题 我想扩展ActionBar的功能,在查找ActionBar代码时,结果是ActionBar是一个抽象类,真正实例化的类是ActionBarImpl。 这种具有抽象和Impl实现的模式在android源代码中被广泛使用 开发人员站点没有详细介绍,但总是将抽象类描述为实现类 我看到从java语言严格来看我应该扩展ActionBarImpl,否则我将无法调用super方法,但我从未见过扩展<class>Impl类的示例。登记/> 帮助

2 个答案:

答案 0 :(得分:2)

在这种情况下,抽象和实现之间的唯一区别可能是抽象方法。如果实现类提供的默认行为是可接受的,我会说扩展它并覆盖你需要的其他方法。

如果您想要的抽象方法行为意味着您根本无法使用该实现,那么扩展抽象类。

答案 1 :(得分:2)

是的,你应该扩展Impl类的扩展,因为如果你扩展抽象类,你将不得不提供抽象方法的实现,如果你不打算“改变”现有的行为,而只是“扩展“或添加新行为,然后你最好扩展Impl类。