第三章—练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

调用了自己这个类的另外一个构造方法
this(name,school,”beijing”);
在这里插入图片描述

参数写错调整过来了
在这里插入图片描述

在这里插入图片描述

Student_LianXi_29 s1 = new Student_LianXi_29(“C”, “S1”);
在这里插入图片描述
本来堆内存中的“C”和“beijing”应该存在data seg里面,应该是通过引用指向data seg里面这个两个值的,但是为了方便看所以才这么画的
//第二个构造方法
Student_LianXi_29(String n,String l,String school) {
//设定Person_LianXi_29的private String name;和private String location;
super(n,l);
this.school = school;
}

调用完父类的构造方法 执行完 super(n,l);
在这里插入图片描述

//第二个构造方法
Student_LianXi_29(String n,String l,String school) {
//设定Person_LianXi_29的private String name;和private String location;
super(n,l);
this.school = school;
}
执行this.school = school;时
在这里插入图片描述

下面的这个方法执行结束时
//第二个构造方法
Student_LianXi_29(String n,String l,String school) {
//设定Person_LianXi_29的private String name;和private String location;
super(n,l);
this.school = school;
}
在这里插入图片描述

//第二个构造方法完成后返回给this(name,“beijing”,school);
所以第一个构造方法结束
//第一个构造方法
Student_LianXi_29(String name,String school) {
//调用了自己这个类的另外一个构造方法
//第一个构造方法调用了第二个构造方法
//第一个构造方法里面的值把第二个的构造方法的值初始化了
this(name,“beijing”,school);
//把name传给n
//把"beijing"传给l
//把school传给school
}
在这里插入图片描述

在这里插入图片描述

package pack03.TestTeacher;

class Person {
	private String name;
	private String location;

	Person(String name) {
		this.name = name;
		location = "beijing";
	}

	Person(String name, String location) {
		this.name = name;
		this.location = location;
	}

	public String info() {
		return "name: " + name + " location: " + location;
	}
}

class Student extends Person {
	private String school;

	// 第一个构造方法
	Student(String name, String school) {
		// 调用了自己这个类的另外一个构造方法
		// 第一个构造方法调用了第二个构造方法
		// 第一个构造方法里面的值把第二个的构造方法的值初始化了
		this(name, "beijing", school);
		// 把name传给n
		// 把"beijing"传给l
		// 把school传给school
	}

	// 第二个构造方法
	Student(String n, String l, String school) {
		// 设定Person_LianXi_29的private String name;和private String location;
		super(n, l);
		this.school = school;
	}

	@Override
	public String info() {
		return super.info() + "  school: " + school;
	}
}

class Teacher extends Person {
	private String capital;

	// 第一个构造方法
	Teacher(String name, String capital) {
		this(name, "beijing", capital);
	}

	// 第二个构造方法
	Teacher(String n, String l, String capital) {
		//交给父类去处理
		super(n, l);
		this.capital = capital;
	}

	@Override
	public String info() {
		return super.info() + "  capital: " + capital;
	}
}

public class TestTeacher {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person p1 = new Person("A");
		Person p2 = new Person("A", "shanghai");
		Student s1 = new Student("C", "S1");
		Student s2 = new Student("C", "shanghai", "S2");
		System.out.println(p1.info());
		System.out.println(p2.info());
		System.out.println(s1.info());
		System.out.println(s2.info());
		
		Teacher t1 = new Teacher("D", "Professor");
		System.out.println(t1.info());
	}

}

发布了76 篇原创文章 · 获赞 1 · 访问量 7052

猜你喜欢

转载自blog.csdn.net/weixin_42814000/article/details/104773615
今日推荐