1

有没有办法private从子类访问父类中的字段?IE:

public class parent<T> {
    private int MaxSize; 

    ...

}

public class sub extends parent {
    public int getMaxSize() {
        return MaxSize;
    }
}

基本上我想要一个访问器方法,getMaxSize()来返回一个ArrayQueue. 谢谢。

4

2 回答 2

1

否 -private字段只能在声明它们的类中直接访问。但是,您可以创建 field protected,这将允许您从子类中访问它。下表是一个方便的参考:

每个情绪化者允许的访问:

修饰符类包子类世界
----------------------------------------------
公共       YYYY
保护    YYYN
无修饰符  YYNN
私有      YNNN

[来源]

当然,您也可以编写一个public(或protected!)getter 方法,它只返回您的字段的值,并在子类中使用此方法而不是实际的字段本身。

顺便说一句,在 Java 中以camelCase 形式编写变量名是惯例,即maxSize.

于 2012-11-21T19:52:47.867 回答
1

private变量不能从其声明类以外的任何类访问,这意味着子类无权访问private其父类的变量。

您可以在具有public访问权限的父类中添加一个 getter,它们都允许子类访问。使用这种结构,您的子类也从父类继承getMaxSize(),无需在子类中声明方法。

public class Parent {
    private int maxSize;

    public int getMaxSize() {
        return maxSize;
    }
}
于 2012-11-21T19:53:07.020 回答