实验任务3、现有Person类、Teacher类和Student类,Teacher类和Student类继承自Person类,各类对应的UML图如下所示。 在主类Test中,创建Teacher对象和Student对象,用上转型实现多态,对产生的教师和学生对象,输出相应的信息。
1 代码分析
①. 方法的重载:同一个方法名称可以根据参数的类型或个数不同调用不同的方法体。 ②. 方法的覆写:同一个父类的方法,可能根据实例化子类的不同也有不同的表现形式。 我们可以通过对象的向上转型:父类 父类对象 = 子类实例的方式来实现多态。
具体可以参考文章:https://www.beiwangshan.com/archives/751.html
2 程序代码
package com.beiwangshan.person;
/**
* @author 北忘山
*/
class Person {
private String name;
private int age;
public Person() {
}
public void display() {
System.out.println("姓名:" + this.name + " 年龄:" + this.age);
}
}
class Teacher extends Person {
private String workID;
private String name;
private int age;
private String dept;
public Teacher(String workID, String name, int age, String dept) {
this.workID = workID;
this.name = name;
this.age = age;
this.dept = dept;
}
public void display() {
System.out.println("工号:"+this.workID+" 姓名:"+this.name+" 年龄:"+this.age+" 部门:"+this.dept);
}
}
class Student extends Person {
private String stuNo;
private String name;
private String major;
public Student(String stuNo, String name, String major) {
this.stuNo = stuNo;
this.name = name;
this.major = major;
}
public void display() {
System.out.println("学号:"+this.stuNo+" 姓名:"+this.name+" 专业:"+this.major);
}
}
public class demo {
public static void main(String[] args) {
//向上转型 父类 父类对象 = 子类实例
Teacher t = new Teacher("1101","张三",31,"IT");
Student s = new Student("1001","lisa","数学");
Person per1 = s;
Person per2 = t;
per1.display();
per2.display();
}
}
3 运行结果
4 实验心得
© 版权声明
THE END
暂无评论内容