您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

不要从超类构造函数中调用子类方法

不要从超类构造函数中调用子类方法

使getVar方法最终化@H_301_4@

这绝对是您需要做的。@H_301_4@

如果要使用方法功能来初始化对象,则不应让子类破坏该方法。@H_301_4@

回答您的问题,防止出现此问题的 一种方法getVar在中将其设为私有A。@H_301_4@

查看此代码的简化版本:@H_301_4@

// A.java
class A {
    private final String var;
    public A(){
        var = getVar();
        var.length();
    }
    private String getVar(){
        return "This is the value";
    }
}
class B extends A {
    private final String other;
    public B(){
        other = "Other string";
    }
    public String getVar(){
        return other;
    }
}
class Main{
    public static void main( String [] args ) {
        new B();
    }
}

顺便说一句,为什么您将它们放置为静态嵌套类,只是造成混乱?@H_301_4@

其他 2022/1/1 18:35:07 有499人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶