Java:继承方法中使用的私有变量

时间:2015-10-26 12:29:25

标签: java private

我对Java很新,根据我的知识,类Shape中的变量drawingChar是私有的,所以它不是由类Test继承的,但是因为setDrawingChar()是一个公共函数,所以它是继承的。 / p>

public class Shape {

    private char drawingChar = '*'; // private var

    public void setDrawingChar(char drawingChar) {
        this.drawingChar = drawingChar;
    }
} 
public class Test extends Shape{

    public static void main(String[] args) {
        Test t2 = new Test();
    t2.setDrawingChar('*'); // call setDrawingChar on a Test obj
    }
}

在类Test中,不知何故我可以在Test对象上调用setDrawingChar(),但是Test不会继承drawingChar吗?如果是这样,那么 this.drawingChar 在对象t2中的含义是什么?

1 个答案:

答案 0 :(得分:3)

子类将继承任何publicprotected变量或方法,并且可以选择将它们单独保留或覆盖它们(在方法的情况下)。这就是为什么你可以调用方法setDrawingChar,它通过该名称检查Test任何方法,然后检查其超类的实现。它从Shape找到实现并执行它。

请注意,您将无法使用Shape变量drawingChar,因为private范围仅限于其他Shape对象,而不是其子类

public上的privateprotectedstd::vector的更多信息。