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