public class Person {
private String name;
public Person(){
Class classs = this.getClass();
System.out.println(this);
this.name = "ths"; //@这是我的一个疑问
System.out.println(this);
}
public String getName(){
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
public class Student extends Person{}
@Test
public void testExtends(){
new Student();
}
简单说明一下上面的代码:一个student类继承person类,在测试类中我new了一个student对象,我们都知道在创建子类对象时默认会去调用父类的构造方法所以构造方法中的this代表student对象,可是让我很不明白的是this.name,不是说子类不继承父类的私有属性吗?那么这个this.name又算神马?不是说子类不可以直接使用吗?求大神详解一下!
楼主,我是这样认为的,这里的this.name肯定是指的Person类本身,这没有错吧,当我们调用学生类无参构造的时候,默认使用的是父类的,this.name和Person中的getName表达的意思不是一样的吗,都是返回本类的成员变量,所以当你Student s = new Student();学生的时候,显示的s.geName还是显示ths,你想想.
楼主,我是这样认为的,这里的this.name肯定是指的Person类本身,这没有错吧,当我们调用学生类无参构造的时候,默认使用的是父类的,this.name和Person中的getName表达的意思不是一样的吗,都是返回本类的成员变量,所以当你Student s = new Student();学生的时候,显示的s.geName还是显示ths,你想想.