继承+封装)编程:定义一个人类(Person),包括属性:姓名、性别、年龄、国籍;包括的方法:吃饭、睡觉,工作 (1)根据人类,定义一个学生类,增加属性:学校、学号;重写工作方法(实现内容为学习)。(
时间: 2024-10-25 21:03:40 浏览: 63
在面向对象编程中,通过"继承+封装"的方式,我们可以创建一个基础类,并在此基础上派生出更具体的子类。这里我们有一个名为`Person`的基本类:
```java
public class Person {
private String name;
private String gender;
private int age;
private String nationality;
// 构造函数
public Person(String name, String gender, int age, String nationality) {
this.name = name;
this.gender = gender;
this.age = age;
this.nationality = nationality;
}
// 访问属性通常需要get和set方法,这里省略
// 吃饭方法
public void eat() {
System.out.println(name + "正在吃饭.");
}
// 睡觉方法
public void sleep() {
System.out.println(name + "正在睡觉.");
}
// 工作方法(默认实现)
public void work() {
System.out.println(name + "在工作.");
}
}
```
然后我们基于`Person`类定义一个特定的子类`Student`,增加新的属性`school`和`studentId`,并重写了`work`方法:
```java
public class Student extends Person {
private String school;
private int studentId;
// 学生构造函数,包含额外的属性
public Student(String name, String gender, int age, String nationality, String school, int studentId) {
super(name, gender, age, nationality);
this.school = school;
this.studentId = studentId;
}
@Override
// 重写工作方法,实现学习行为
public void work() {
System.out.println(name + "正在学校学习,学号:" + studentId + ", 在" + school + ".");
}
}
```
现在你可以创建`Student`对象并使用其特有的方法:
```java
Student student = new Student("张三", "男", 20, "中国", "清华大学", 123456);
student.eat(); // 输出: 张三正在吃饭.
student.sleep(); // 输出: 张三正在睡觉.
student.work(); // 输出: 张三正在学校学习,学号:123456, 在清华大学.
```
阅读全文