在java中,编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩, 教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的父类。
时间: 2024-12-01 11:20:51 浏览: 6
在Java中,你可以创建一个名为`Person`的抽象类作为学生和教师数据的基础,然后分别继承该类并添加特定的数据字段和方法。这里是一个简单的示例:
```java
// Person 类 (抽象)
abstract class Person {
protected int id;
protected String name;
// 构造函数
public Person(int id, String name) {
this.id = id;
this.name = name;
}
// 获取和设置方法
public int getId() { return id; }
public String getName() { return name; }
// 抽象方法展示信息,子类需要覆盖
abstract void displayInfo();
// 输入信息
public static void inputInfo(Person person) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入ID: ");
person.setId(scanner.nextInt());
System.out.println("请输入姓名: ");
person.setName(scanner.nextLine());
}
}
// 学生类 (继承自 Person)
class Student extends Person {
private int classNumber;
private double grade;
public Student(int id, String name, int classNumber, double grade) {
super(id, name);
this.classNumber = classNumber;
this.grade = grade;
}
@Override
void displayInfo() {
System.out.printf("学生ID: %d, 姓名: %s, 班级: %d, 成绩: %.2f%n", getId(), getName(), classNumber, grade);
}
}
// 教师类 (继承自 Person)
class Teacher extends Person {
private String title;
private String department;
public Teacher(int id, String name, String title, String department) {
super(id, name);
this.title = title;
this.department = department;
}
@Override
void displayInfo() {
System.out.printf("教师ID: %d, 姓名: %s, 职称: %s, 部门: %s%n", getId(), getName(), title, department);
}
}
public class Main {
public static void main(String[] args) {
// 输入学生和教师信息
Student student = new Student(0, "张三", 1, 90.5);
Teacher teacher = new Teacher(1, "李四", "教授", "计算机科学系");
Person.inputInfo(student);
Person.inputInfo(teacher);
// 显示信息
student.displayInfo();
teacher.displayInfo();
}
}
```
在这个例子中,`Student`和`Teacher`类都继承了`Person`类,并实现了`displayInfo()`方法以提供各自特有的信息。`inputInfo()`方法则被设计成静态的,以便于对任何类型的`Person`实例进行数据输入。
阅读全文