Java-抽象类包含变量?

让抽象类定义实例变量是否是一种好习惯?

public abstract class ExternalScript extends Script {

String source;

public abstract void setSource(String file);

public abstract String getSource();

}

然后,子类ExternalJavaScript.class会自动获取源变量,但我认为,如果所有子类本身都定义了源而不是继承,则读取代码会更容易。

你有什么建议?

/亚当

回答:

我本以为这样的话会更好,因为您要添加一个变量,所以为什么不限制访问并使它更整洁呢?您的吸气器/装夹器应该按照罐子上的说明去做。

public abstract class ExternalScript extends Script {

private String source;

public void setSource(String file) {

source = file;

}

public String getSource() {

return source;

}

}

再次提到这个问题,您在阅读时是否会费心地查看getter /

setter代码的位置?如果它们都可以获取和设置,那么您在读代码时就不必担心函数会做什么。还有其他一些原因需要考虑:

  • 如果源代码受到保护(因此可以通过子类访问),则代码将变得混乱:谁在更改变量?当它是一个对象时,那么当您需要重构时就会变得很困难,而一种方法往往会使此步骤变得更容易。
  • 如果您的getter / setter方法没有获取并设置,则将它们描述为其他内容。

始终想一想您的课程是否真的与众不同,这应该有助于决定您是否还需要其他内容。

以上是 Java-抽象类包含变量? 的全部内容, 来源链接: utcz.com/qa/401441.html

回到顶部