打印效果如下:
老师的信息:
姓名:王飞
年龄:30
性别:男
工龄:5
我承诺,我会认真教课。
王飞爱玩象棋
学生的信息:
姓名:小明
年龄:15
性别:男
学号:00023102
我承诺,我会 好好学习。
小明爱玩足球。
- 案例题目描述:
- 做一个Student类,Student类有名称(name),性别(sex),年龄(age),学号(stu_id),做合理封装,通过构造器在创建对象时将4个属性赋值。
- 写一个Teacher类,Teacher类有名称(name),性别(sex),年龄(age),工龄(work_age),做合理封装,通过构造器在创建对象时将4个属性赋值。
- 因为Student类和Teacher类有公共内容,所以尝试编写父类(Person),将公共内容抽象成父类。
- 学生需要有学习的方法(study),在方法里写生“我承诺,我会好好学习。”。
- 教师需要有教学的方法(teach),在方法里写上“我承诺,我会认真教学。”。
- 学生和教师都有玩的方法(play),学会玩的是足球,老师玩的是象棋,此方法是返回字符串的,分别返回“xx爱玩足球”和“xx爱玩象棋”(其中xx分别代表学生和老师的姓名)。因为玩的方法名称都一样,所以要求此方法定义在父类中,子类实现重写。
- 要求测试类结果和效果案例一样。
- 案例完成思路。
- 一共编写4个类,名称分别为“Person.java”,“Teacher.java” ,“Student.java”,“Test.java”。(20)
- “Person.java”是父类,需要老师类和学生类继承,并按要求完成功能。(20)
- 通过构造器在创建对象时,可以使用类似this.setName(name);代码进行属性赋值。(20)
- 在“Person.java”类中编写play方法时,只要返回空字符串就可以了,因为这个方法要被子类重写。注意此方法在编写时,要把当前的用户名称也一并返回出来,思考下如何编写。(30)
public class Person {
private String name;
private String sex;
private int age;
public Person(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public String getSex() {
return sex;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void show() {
}
public String play() {
return "";
}
}
public class Student extends Person{
private String stu_id;
public Student(String name, String sex, int age, String stu_id) {
super(name, sex, age);
this.stu_id = stu_id;
}
/**
* 功能:学生承诺
* author:***
* time:2018年8月2日下午5:32:40
*/
public void study() {
System.out.println("我承诺,我会好好学习。");
}
/**
* 功能:学生信息输出
* author:***
* time:2018年8月2日下午5:32:40
*/
public void show() {
System.out.println("学生的信息是:");
System.out.println("姓名:"+getName()+"\n年龄"+getAge()
+"\n性别"+getSex()+"\n学号:"+stu_id);
}
public String play() {
return super.getName()+"爱玩足球";
}
}
public class Teacher extends Person{
private int work_age;
public Teacher(String name, String sex, int age, int work_age) {
super(name, sex, age);
this.work_age = work_age;
}
/**
* 功能:教师承诺
* author:***
* time:2018年8月2日下午5:31:47
*/
public void teach() {
System.out.println("我承诺,我会认真教学。");
}
public String play() {
return super.getName()+"爱玩象棋";
}
/**
* 功能:教师信息输出
* author:***
* time:2018年8月2日下午5:32:40
*/
public void show() {
System.out.println("学生的信息是:");
System.out.println("姓名:"+getName()+"\n年龄"+getAge()
+"\n性别"+getSex()+"\n工龄:"+work_age);
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Teacher teach=new Teacher("张三", "男", 22, 5);
teach.show();
teach.teach();
System.out.println(teach.play());
System.out.println("----------------------");
Student stu=new Student("张二", "男", 22, "1002");
stu.show();
stu.study();
System.out.println(stu.play());
}
}