在无法实现所有方法的情况下从基类继承时,最好将空方法放在基类中,以便不需要该方法的子类可以完全忽略它,而其他类必须重写该方法是否要实现...例如:

基类:

public void myMethod() {
}


没有实现的子类:

<nothing!>


还是让基类保持整洁,只是将一个抽象方法放入其中,并强制子类充实空白方法(如果未实现该方法)会更好吗?

基类:

public abstract void myMethod();


没有实现的子类:

public void myMethod() {
}

最佳答案

这取决于您,这实际上取决于情况。

当您有一个抽象类并且想要将其扩展为实现该方法的类时,可以使用抽象方法(因为抽象父类使用抽象方法-可能类似于print())。它类似于接口的方法,但通常用于不同的场景。但在大多数情况下,我会使用界面...

仅在myMethod()在扩展抽象父级的每个类中做不同的事情的情况下,才使用抽象方法...否则,如果myMethod()通常做同样的事情并且一两个类需要重写它,我将使用第一个解决方案。

还要看看模板方法模式。我不知道您是哪种情况,所以我无法以确切的方式回答这个问题...

关于java - 在Java中使用抽象类时的编码样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13845182/

10-15 22:03