定义Student类继承Person类,有以下几个成员属性 继承自父类的变量:姓名(name),字符串类型(String);性别(sex),字符型(char);年龄(age), 整型(int)。 子类新增加的变量: 学号(number),长整型; 三门功课的成绩:哲学(phi),double类型;英语(eng),double类型;计算机(comp),double类型。 子类新增加的方法: 求三门功课成绩的最高分max():该方法没有参数,返回值为double型; 覆盖父类的同名方法:toString() 返回学号、姓名、性别、最高分信息。 3. 编写一个主函数,利用上述类定义创建一个或多个学生对象,学生信息如下: 学号:1234567 姓名: 张三 性别:男 年龄:20 最高分:95.0 第二个学生信息请填入自己的学号、姓名、性别。 并利用toString()方法在屏幕上输出学生信息
时间: 2024-02-13 21:06:50 浏览: 139
JAVASE.面向对象(1)
好的,根据您的要求,这是一个可能的实现:
```java
// 定义 Person 类
class Person {
protected String name; // 姓名
protected char sex; // 性别
protected int age; // 年龄
// 构造函数
public Person(String name, char sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
// toString 方法
public String toString() {
return "姓名:" + name + ",性别:" + sex + ",年龄:" + age;
}
}
// 定义 Student 类,继承自 Person 类
class Student extends Person {
private long number; // 学号
private double phi; // 哲学成绩
private double eng; // 英语成绩
private double comp; // 计算机成绩
// 构造函数
public Student(long number, String name, char sex, int age, double phi, double eng, double comp) {
super(name, sex, age);
this.number = number;
this.phi = phi;
this.eng = eng;
this.comp = comp;
}
// 求最高分
public double max() {
return Math.max(Math.max(phi, eng), comp);
}
// 覆盖 toString 方法
public String toString() {
return "学号:" + number + "," + super.toString() + ",最高分:" + max();
}
}
// 主函数
public class Main {
public static void main(String[] args) {
// 创建学生对象
Student s1 = new Student(1234567, "张三", '男', 20, 95.0, 90.0, 92.0);
Student s2 = new Student(你的学号, "你的姓名", '你的性别', 你的年龄, 80.0, 85.0, 88.0);
// 输出学生信息
System.out.println(s1.toString());
System.out.println(s2.toString());
}
}
```
注意,为了实现子类新增加的变量和方法,我们需要在子类中定义新的成员变量和方法,并且在构造函数中调用父类的构造函数来初始化继承自父类的变量。同时,为了覆盖父类的同名方法,我们需要在子类中定义一个同名的 toString 方法,并且在其中调用父类的 toString 方法。最后,在主函数中创建学生对象,并且调用 toString 方法输出学生信息。
阅读全文