【发布时间】:2015-10-26 12:29:24
【问题描述】:
我是Java的新手,据我所知,Shape类中的变量drawingChar是私有的,所以它不被Test类继承,但是由于setDrawingChar()是一个公共函数,所以它被继承了。
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 不是真的吗?如果是这样,在对象 t2 的情况下,this.drawingChar 指的是什么?
【问题讨论】:
-
它确实继承了
drawingChar。private表示您不能在其类之外直接访问它。这并不意味着它不存在。 -
不是,这就是为什么你有一个 setter 在那里 - 你不知道有哪些私人成员存在,但你仍然可以设置绘图椅。
-
哦,所以私有与继承无关...谢谢!