用继承和封装的知识完成以下代码: 现有一个顶级父类动物类,里面有体重,年龄,性别等成员变量,有跑,跳,吃三个动作。 还有两个类去继承他,一个人类,除了年龄,体重,性别成员变量,还有姓名,身高和性格,还
时间: 2024-09-09 16:06:18 浏览: 39
在面向对象编程中,继承允许我们定义一个类(子类)来继承另一个类(父类)的属性和方法。封装则是指将对象的状态(属性)和行为(方法)捆绑在一起,并对外隐藏对象的实现细节。下面是如何使用继承和封装的知识来完成你所描述的代码:
首先,我们定义一个顶级父类`动物类`,包含基本属性和方法:
```java
public class 动物类 {
// 封装成员变量,使用private关键字,提供public的getter和setter方法
private int 体重;
private int 年龄;
private char 性别;
// 动物类的构造方法
public 动物类(int 体重, int 年龄, char 性别) {
this.体重 = 体重;
this.年龄 = 年龄;
this.性别 = 性别;
}
// 行为方法
public void 跑() {
System.out.println("动物正在跑");
}
public void 跳() {
System.out.println("动物正在跳");
}
public void 吃() {
System.out.println("动物正在吃");
}
// getter和setter方法
public int get体重() {
return 体重;
}
public void set体重(int 体重) {
this.体重 = 体重;
}
public int get年龄() {
return 年龄;
}
public void set年龄(int 年龄) {
this.年龄 = 年龄;
}
public char get性别() {
return 性别;
}
public void set性别(char 性别) {
this.性别 = 性别;
}
}
```
然后,我们创建两个子类`人类`和`另一个类`(这里假设为`另一个类`)来继承`动物类`:
```java
public class 人类 extends 动物类 {
// 人类特有的属性
private String 姓名;
private double 身高;
private String 性格;
// 人类的构造方法
public 人类(int 体重, int 年龄, char 性别, String 姓名, double 身高, String 性格) {
super(体重, 年龄, 性别); // 调用父类构造方法
this.姓名 = 姓名;
this.身高 = 身高;
this.性格 = 性格;
}
// 人类特有的方法
public void 说话() {
System.out.println(姓名 + "正在说话");
}
// 重写父类的方法可以增加特有的功能或修改原有功能
@Override
public void 吃() {
System.out.println(姓名 + "正在吃东西");
}
// getter和setter方法
public String get姓名() {
return 姓名;
}
public void set姓名(String 姓名) {
this.姓名 = 姓名;
}
public double get身高() {
return 身高;
}
public void set身高(double 身高) {
this.身高 = 身高;
}
public String get性格() {
return 性格;
}
public void set性格(String 性格) {
this.性格 = 性格;
}
}
// 另一个类的实现可以类似地创建,这里不再赘述。
```
通过继承,`人类`和`另一个类`可以使用`动物类`中的属性和方法,并且可以添加自己特有的属性和方法。封装则体现在将属性设置为`private`,并通过`public`的`getter`和`setter`方法来访问和修改这些属性。
阅读全文