为什么子类中没有可用的继承属性

时间:2011-06-18 10:40:35

标签: java inheritance

我正在尝试在子类中使用名为value的成员变量。

我的超级类叫做SType,我的子类叫做SResource。

我在超类SType中有一个名为value

的变量

我希望它由子类继承,我该怎么做。该课程看起来像这样

public class SType {

    private String value;

    public String getValue(){
        return this.value;
    }
    public void setValue(String value){
        this.value = value;
    }
}

注意:我编辑了问题以使其更清晰(给出下面的评论)。谢谢它是一个简单的解决方案,只需要变量protected而不是私有

3 个答案:

答案 0 :(得分:4)

为了访问子类中的超类变量,必须在超类中将其声明为public或protected。 也许你的是私人的?

当你在子类中有private String value时 - 这是一个全新的变量 - 它不是来自父类的那个,即你有两个不同的私有变量(我假设超类一个是私有的)。 / p>

答案 1 :(得分:2)

你可以 - 保护而不是私密。

答案 2 :(得分:1)

而不是私人尝试:

protected String value;

b.cos private只能访问当前班级。 虽然预计可以访问子类

你的问题是合适的,但java中的私有意义是保护当前变量或方法不受类外的影响。