【发布时间】:2015-08-25 20:38:18
【问题描述】:
我有一个抽象类,它有一个由所有扩展该类的类使用的方法。该方法对于每个类都是相同的,所以我不想在这些类中一遍又一遍地编写它。问题是该方法使用在每个类中声明的 2 个变量。如果没有抽象类中的这些变量,我就无法在抽象类中使用该方法。但如果我这样做,它们将采用抽象类中指定的值,而不是扩展它的类。我该如何解决这个问题?
示例代码:
public abstract class Example {
public String property1 = ""
public String property2 = ""
public ArrayList<String> getPropertyies() {
ArrayList<String> propertyList = new ArrayList<>();
propertyList.add(property1);
propertyList.add(property2);
return property1;
}
}
public class ExampleExtension extends Example {
public String property1 = "this is the property";
public String property2 = "this is the second property";
}
【问题讨论】:
-
什么是 Java
"abstract field"? -
这是一个非常糟糕的编码模式。任何好的 IDE 都会告诉你
ExampleExtension.property1是 hidingExample.property1。如果您讨厌阅读您的代码的人,请坚持下去,包括。自己。 -
同样的评论可以说得很好。请以尊重和正直的态度发表评论。
标签: java oop abstract-class encapsulation