Superclass有子类引用

时间:2011-10-04 04:30:31

标签: inheritance object-oriented-analysis

我有一种情况,我必须为超类中的子类引用放置getter和setter。我只是需要知道它是否是一个好的做法?

我已经给出了以下代码。

public class SuperClass{
 String commonProperty;
 private BaseClass baseClass;

 public void setBaseClass(BaseClass baseClass){
  this.baseClass = baseClass;
 }

 public BaseClass getBaseClass(){
  return this.baseClass;
 }

}


public classs BaseClass extends SuperClass{
 String uncommonProperty;



}

public class SuperClass{ String commonProperty; private BaseClass baseClass; public void setBaseClass(BaseClass baseClass){ this.baseClass = baseClass; } public BaseClass getBaseClass(){ return this.baseClass; } } public classs BaseClass extends SuperClass{ String uncommonProperty; }

3 个答案:

答案 0 :(得分:1)

这是一个代码气味,你的设计出了问题。正如@Ben所说,我们不知道你的具体情况。但是既然你问的是我猜你觉得某事错了。你是对的。

重申一下,子类继承自超类,因此通过OO语言工作的基本方式,您不需要那种引用。

答案 1 :(得分:0)

一般来说这是不好的做法,因为超类不应该知道谁在扩展它。此外,这仅限于一个子类。您可以使用反射来查找所有子类,但这通常也是设计错误的指标。

在不知情的情况下,我很想你不需要这样做。

答案 2 :(得分:0)

这不是最好的编码或设计实践,因为Super类不需要其子类的任何内容,只有subclasses必须知道superclass