如何在超类方法中使用子类的静态字段

时间:2016-10-03 14:22:57

标签: java

我的超类上有一个代码,希望子类中的WIDTH和HEGHT计算

n

我必须使用WIDTH和HEIGHT的静态字段但是编译错误导致超类仍然不知道WIDTH和HEIGHT在哪里。我可以在子类中覆盖静态字段吗?

1 个答案:

答案 0 :(得分:8)

你做不到。多态性的全部意义在于超类对子类没有任何了解

换句话说:依赖性仅“向上”流动。子类依赖于它的超类,但反之亦然。

如果有的话,你可以这样做:

public abstract class SuperClass {
  protected abstract int getWidth();

然后在基类算法中调用getWidth();然后您的子课程必须实施这些方法 - 这就是您按照开放/封闭原则实际进行适当的OO设计的方式。

所以,这里的解决方案是:你退后一步,对OO设计做更多的阅读;怎么做;以及它如何与Java实际协同工作。并且为了记录:您真的希望在良好的OO设计中使用静态 - 这是异常;并且只应在有充分理由的情况下使用!