繁体   English   中英

java抽象类继承

[英]java abstract class 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
        }
}

我希望您对这种实施方式有意见,

问候。

这个问题可能太开放了,但是您的解决方案很好。

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

在抽象类中实现方法是非常有效且可以接受的设计。 如果此方法实现对其所有子类都是必需的,那么这就是方法。 但是,在您的示例中-该方法的签名使它变得几乎没有一点可疑-似乎您没有以任何方式使用超类状态。 这意味着您最好将此方法声明为static

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM