我的超类上有一个代码,希望子类中的WIDTH和HEGHT计算
n
我必须使用WIDTH和HEIGHT的静态字段但是编译错误导致超类仍然不知道WIDTH和HEIGHT在哪里。我可以在子类中覆盖静态字段吗?
答案 0 :(得分:8)
你做不到。多态性的全部意义在于超类对子类没有任何了解!
换句话说:依赖性仅“向上”流动。子类依赖于它的超类,但反之亦然。
如果有的话,你可以这样做:
public abstract class SuperClass {
protected abstract int getWidth();
然后在基类算法中调用getWidth();然后您的子课程必须实施这些方法 - 这就是您按照开放/封闭原则实际进行适当的OO设计的方式。
所以,这里的解决方案是:你退后一步,对OO设计做更多的阅读;怎么做;以及它如何与Java实际协同工作。并且为了记录:您真的希望在良好的OO设计中使用静态 - 这是异常;并且只应在有充分理由的情况下使用!