我有一个抽象类,这个类在她的子类中扩展:
小例子:
public abstract class Foo{
//plus constructor and other stuff.
public abstract void differentTypeOfImplementation();
public void doSomething(Foo foo){
//do something with the generic Foo object passed
}
}
我希望您对此类实施提出意见,
问候。
答案 0 :(得分:2)
这个问题可能过于开放,但你的解决方案完全没问题。
另一种方法是,您可以使用differentTypeOfImplementation()创建一个接口,然后使用doSomething创建一个实用程序类。这样,您的子类也可以从其他类扩展。但是,如果子类偶尔会覆盖doSomething,或者doSomething需要访问对象的内部状态,那么你所拥有的就完全有效了。
答案 1 :(得分:0)
在抽象类中实现方法是非常有效且可接受的设计。如果这个方法实现对于它的所有子类是必要的,那么这就是要走的路。但是在你的例子中 - 方法的签名使它有点腥 - 看起来你没有以任何方式使用超类状态。这意味着您也可以将此方法声明为static
。