谢谢大虾看完,呵呵,我想问:
父类private的成员变量子类构造方法中怎么直接用了?
还有子类第一个构造方法怎么没有引用父类的构造方法啊?class Person {
private String name;
private String 本地;Person(String name) {
this.name = name;
本地 = "beijing";
}
Person(String name, String 本地) {
this.name = name;
this.本地 = 本地;
}
public String info() {
return "name: " + name + " 本地: " + 本地;
}
}class Teacher extends Person {
private String capital;Teacher(String name, String capital) {
this(name, "beijing", capital);
}
Teacher(String name, String 本地, String capital) {
super(name,本地);
this.capital = capital;
}public String info() {
return super.info() + " capital: " + capital;
}
}public class Test {
public static void main(String[] args) {
Person p1 = new Person("A");
Person p2 = new Person("B","shanghai");
Teacher s1 = new Teacher("C","Professor");
Teacher s2 = new Teacher("D","beijing","Professor");System.out.println(p1.info());
System.out.println(p2.info());
System.out.println(s1.info());
}
}
再次感谢~
父类private的成员变量子类构造方法中怎么直接用了?
还有子类第一个构造方法怎么没有引用父类的构造方法啊?class Person {
private String name;
private String 本地;Person(String name) {
this.name = name;
本地 = "beijing";
}
Person(String name, String 本地) {
this.name = name;
this.本地 = 本地;
}
public String info() {
return "name: " + name + " 本地: " + 本地;
}
}class Teacher extends Person {
private String capital;Teacher(String name, String capital) {
this(name, "beijing", capital);
}
Teacher(String name, String 本地, String capital) {
super(name,本地);
this.capital = capital;
}public String info() {
return super.info() + " capital: " + capital;
}
}public class Test {
public static void main(String[] args) {
Person p1 = new Person("A");
Person p2 = new Person("B","shanghai");
Teacher s1 = new Teacher("C","Professor");
Teacher s2 = new Teacher("D","beijing","Professor");System.out.println(p1.info());
System.out.println(p2.info());
System.out.println(s1.info());
}
}
再次感谢~
2。this调用的第二个,杂没用父类的?
super(name,本地);
this.capital = capital;
}
这个是正确的 子类构造调用父类构造使用super
Teacher(String name, String capital) {
this(name, "beijing", capital);
}
这个是调用本类构造,及上边的那个
super调用的不是构造方法么,这样就能用private变量了?
呵呵,我有点转不过来
调用父类构造函数,因此父类的属性就有叻值,有叻值以后呢,info()就能返回值咯。
Teacher(String name, String capital) {
this(name, "beijing", capital); //这里调用下面这个子类的构造方法
}
Teacher(String name, String 本地, String capital) {
super(name,本地); //这里调用父类构造方法
this.capital = capital;
} public String info() {
return super.info() + " capital: " + capital;
}
这里取的是父类的两个属性和子类本身的属性。
子类自始至终都没弄到“name”、“本地”这两个变量
子类构造方法里调用super(name,本地)是给父类里的两个变量赋值
Teacher(String name, String 本地, String capital)这个函数里
super(name,本地);
就是父类的构造函数