java抽象类继承

时间:2014-04-11 18:22:21

标签: java inheritance

我有一个抽象类,这个类在她的子类中扩展:

  • 我在这个抽象类上实现了一个方法,我做了另一个方法摘要
  • 实现的方法是每个子类对象必须访问的一般方法。所以我决定在抽象类上实现它,避免在每个子类上实现相同的方法。

小例子:

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
        }
}

我希望您对此类实施提出意见,

问候。

2 个答案:

答案 0 :(得分:2)

这个问题可能过于开放,但你的解决方案完全没问题。

另一种方法是,您可以使用differentTypeOfImplementation()创建一个接口,然后使用doSomething创建一个实用程序类。这样,您的子类也可以从其他类扩展。但是,如果子类偶尔会覆盖doSomething,或者doSomething需要访问对象的内部状态,那么你所拥有的就完全有效了。

答案 1 :(得分:0)

在抽象类中实现方法是非常有效且可接受的设计。如果这个方法实现对于它的所有子类是必要的,那么这就是要走的路。但是在你的例子中 - 方法的签名使它有点腥 - 看起来你没有以任何方式使用超类状态。这意味着您也可以将此方法声明为static