定义一个父类Person,有属性name,并赋初值为“张三”,有方法eat()。定义子类Teacher和Student,都有属性name,并重写eat(方法a Student类的name赋值为“本人姓
时间: 2024-09-28 17:05:12 浏览: 34
在面向对象编程中,我们可以这样定义:
首先,我们创建一个名为`Person`的父类,它有一个基本的属性`name`和一个方法`eat()`,用于表示一个人的基本功能。
```java
public class Person {
private String name; // 父类中的姓名属性
public Person(String name) {
this.name = name;
}
// eat()方法表示吃饭的行为
public void eat() {
System.out.println(name + "正在吃饭");
}
}
```
然后,我们定义两个子类:`Teacher`和`Student`。这两个子类都继承自`Person`,并覆盖了`eat()`方法,同时学生类(`Student`)的`name`属性更改为"本人姓氏"。
```java
public class Teacher extends Person {
public Teacher(String name) {
super(name); // 调用父类的构造函数传入姓名
}
@Override
public void eat() {
System.out.println("老师" + this.name + "正在上课间餐");
}
}
public class Student extends Person {
public Student(String name) {
super("本人姓氏 " + name); // 学生的姓名包含“本人姓氏”
}
@Override
public void eat() {
System.out.println("学生" + this.name + "正在吃午餐");
}
}
```
现在,你可以创建这些类的对象,并根据需要使用它们:
```java
public static void main(String[] args) {
Person teacher = new Teacher("李四");
teacher.eat(); // 输出: 老师李四正在上课间餐
Person student = new Student("小明");
student.eat(); // 输出: 学生本人姓氏 小明正在吃午餐
}
```
阅读全文