用Java定义一个MiddleStudent类,继承Student类,重写say()方法,输出一句话“我叫xx,我是中学生,我是xx学校的,读x年级”
时间: 2023-04-12 16:00:23 浏览: 70
好的,以下是Java定义一个MiddleStudent类的代码:
```
public class MiddleStudent extends Student {
private String schoolName;
private int grade;
public MiddleStudent(String name, int age, String schoolName, int grade) {
super(name, age);
this.schoolName = schoolName;
this.grade = grade;
}
@Override
public void say() {
System.out.println("我叫" + getName() + ",我是中学生,我是" + schoolName + "的,读" + grade + "年级");
}
}
```
在这个代码中,我们定义了一个MiddleStudent类,它继承了Student类,并重写了say()方法。在构造函数中,我们传入了学生的姓名、年龄、学校名称和年级。在say()方法中,我们输出了学生的姓名、学校名称和年级。
相关问题
java定义一个学生类(Student),类中定义speak()方法。从学生类中分别派生出中学生(MiddleStudent)和大学生(CollegeStudent),通过继承学生类的方式实现多态。
好的,这里是Java定义一个学生类(Student),并从该类中派生出中学生(MiddleStudent)和大学生(CollegeStudent),实现多态的代码示例:
```java
// 学生类
class Student {
public void speak() {
System.out.println("我是一名学生。");
}
}
// 中学生类,继承自学生类
class MiddleStudent extends Student {
@Override
public void speak() {
System.out.println("我是一名中学生。");
}
}
// 大学生类,继承自学生类
class CollegeStudent extends Student {
@Override
public void speak() {
System.out.println("我是一名大学生。");
}
}
```
在上面的代码中,我们定义了一个学生类 `Student`,其中包含一个 `speak` 方法。接着,我们通过继承的方式分别定义了中学生类 `MiddleStudent` 和大学生类 `CollegeStudent`,并重写了 `speak` 方法。这样,当我们调用 `speak` 方法时,会根据实例对象的类型调用对应的方法,实现多态。例如:
```java
public static void main(String[] args) {
Student s1 = new MiddleStudent();
s1.speak(); // 输出:我是一名中学生。
Student s2 = new CollegeStudent();
s2.speak(); // 输出:我是一名大学生。
}
```
在上面的代码中,我们分别创建了一个中学生实例 `s1` 和一个大学生实例 `s2`,并将它们赋值给了 `Student` 类型的变量。然后,我们分别调用了它们的 `speak` 方法,输出了不同的结果,这就是多态的实现。
java代码定义一个学生类(Student),类中定义speak()方法。从学生类中分别派生出中学生(MiddleStudent)和大学生(CollegeStudent),通过继承学生类的方式实现多态。
好的,以下是Java代码定义一个学生类(Student),类中定义speak()方法,以及从学生类中分别派生出中学生(MiddleStudent)和大学生(CollegeStudent),通过继承学生类的方式实现多态的示例代码:
```java
//定义学生类
public class Student {
//定义speak()方法
public void speak() {
System.out.println("我是一个学生!");
}
}
//定义中学生类,继承自学生类
public class MiddleStudent extends Student {
//重写speak()方法
@Override
public void speak() {
System.out.println("我是一个中学生!");
}
}
//定义大学生类,继承自学生类
public class CollegeStudent extends Student {
//重写speak()方法
@Override
public void speak() {
System.out.println("我是一个大学生!");
}
}
//测试类
public class Test {
public static void main(String[] args) {
//创建学生对象
Student student = new Student();
//调用speak()方法,输出“我是一个学生!”
student.speak();
//创建中学生对象
MiddleStudent middleStudent = new MiddleStudent();
//调用speak()方法,输出“我是一个中学生!”
middleStudent.speak();
//创建大学生对象
CollegeStudent collegeStudent = new CollegeStudent();
//调用speak()方法,输出“我是一个大学生!”
collegeStudent.speak();
//利用多态,创建学生数组
Student[] students = {new Student(), new MiddleStudent(), new CollegeStudent()};
//循环遍历学生数组,调用speak()方法
for (Student s : students) {
s.speak();
}
}
}
```
输出结果为:
```
我是一个学生!
我是一个中学生!
我是一个大学生!
我是一个学生!
我是一个中学生!
我是一个大学生!
```
可以看到,通过继承学生类的方式,从学生类中分别派生出中学生和大学生,然后分别重写了speak()方法,在调用speak()方法时,会根据对象的实际类型调用对应的方法,从而实现了多态。同时,利用多态,我们还可以创建一个学生数组,然后循环遍历数组,调用speak()方法,这样可以更加方便地处理一组学生对象。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)