You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.2 KiB
76 lines
2.2 KiB
abstract class Person {
|
|
protected String name;
|
|
protected int age;
|
|
|
|
public Person(String name, int age) {
|
|
this.name = name;
|
|
this.age = age;
|
|
}
|
|
|
|
public abstract void display();
|
|
}
|
|
|
|
class Student extends Person {
|
|
int studentId;
|
|
String major;
|
|
|
|
public Student(String name, int age, int studentId, String major) {
|
|
super(name, age);
|
|
this.studentId = studentId;
|
|
this.major = major;
|
|
}
|
|
|
|
@Override
|
|
public void display() {
|
|
System.out.println("学生信息 - 姓名:" + name + ", 年龄:" + age +
|
|
", 学号:" + studentId + ", 专业:" + major);
|
|
}
|
|
}
|
|
|
|
class Teacher extends Person {
|
|
String subject;
|
|
double salary;
|
|
|
|
public Teacher(String name, int age, String subject, double salary) {
|
|
super(name, age);
|
|
this.subject = subject;
|
|
this.salary = salary;
|
|
}
|
|
|
|
@Override
|
|
public void display() {
|
|
System.out.println("教师信息 - 姓名:" + name + ", 年龄:" + age +
|
|
", 科目:" + subject + ", 薪资:" + salary);
|
|
}
|
|
}
|
|
|
|
public class PolymorphismTest {
|
|
public static void addPerson(Person[] array, int count, Person p) {
|
|
if (count < array.length) {
|
|
array[count] = p;
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
Person[] persons = new Person[10];
|
|
int count = 0;
|
|
|
|
System.out.println("=== 挑战题测试 ===");
|
|
|
|
persons[count++] = new Student("张三", 20, 1001, "计算机科学");
|
|
persons[count++] = new Student("李四", 22, 1002, "软件工程");
|
|
persons[count++] = new Teacher("王老师", 35, "数据结构", 8000);
|
|
persons[count++] = new Teacher("刘老师", 40, "算法分析", 9000);
|
|
|
|
System.out.println("添加成功!共添加 " + count + " 人\n");
|
|
|
|
System.out.println("=== 所有人员信息 ===");
|
|
for (int i = 0; i < count; i++) {
|
|
persons[i].display();
|
|
}
|
|
|
|
System.out.println("\n=== 思考题解答 ===");
|
|
System.out.println("多态优势:addPerson(Person p) 统一处理不同类型");
|
|
System.out.println("添加特定属性问题:使用 instanceof 判断类型后强制转换");
|
|
}
|
|
}
|