A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[Java] 纯文本查看 复制代码
class Test4_Person {
	public static void main(String[] args) {
		Student s = new Student();
		s.setName("张三");
		s.setAge(23);
		System.out.println(s.getName() + "............" + s.getAge());
		s.eat();
		s.study();
		System.out.println("-------------------------------------------------------------");
		Teacher t = new Teacher("李四", 24);
		System.out.println(t.getName() + "............" + t.getAge());
		t.eat();
		t.teach();

	}
}

class Person {
	String name = "王五";					//姓名
	int age;						//年龄
	//age = 88;						//为啥不可以?
	public Person() {}						//无参构造

	public Person(String name, int age) {	//有参构造
		this.name = name;
		this.age = age;
	}

	public void setName(String name) {		//设置姓名
		this.name = name;
	}

	public String getName() {				//获得姓名
		return name;
	}

	public void setAge(int age) {			//设置年龄
		this.age = age;
	}

	public int getAge() {					//得到年龄
		return age;
	}

	public void eat() {						//吃饭
		System.out.println("吃饭");
	}
}

class Student extends Person{
	public Student() {}						//空参构造

	public Student(String name, int age) {	//有参构造
		super(name, age);
	}
	
	public void eat(){						//学生吃饭
		System.out.println(this.getName() + "学生吃饭");
	}
	
	public void study(){						//学生学习
		System.out.println(getName() + "学生学习");
	}
}

class Teacher extends Person{
	public Teacher() {}						//空参构造

	public Teacher(String name, int age) {	//有参构造
		super(name, age);
	}
	
	public void eat(){						//学生吃饭
		System.out.println(super.getName() + "老师讲课");//为啥不是王五老师讲课?如果都和this一样用,那还要this干嘛?
	}
	
	public void teach(){						//老师讲课
		System.out.println(this.getName() + "老师讲课");
	}
}

2 个回复

倒序浏览
int age;                        //年龄
    //age = 88;                     //为啥不可以?

System.out.println(super.getName() + "老师讲课");//为啥不是王五老师讲课?如果都和this一样用,那还要this干嘛
就是这两个问题,求大神回复
回复 使用道具 举报
回答第一个问题,类体中只能出现变量和方法,不能出现语句,反过来说,如果可以,那何时运行这段语句呢?
第二个今天问了老师,也画了内存图,不好解释,就不发上来了...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马