用java定义一个男人类(Man)和一个女人类(Woman),继承人类(Person) 成员属性,姓名身高 男人类:独有的方法花钱 女人类:独有的方法
时间: 2023-04-03 16:03:31 浏览: 126
我可以回答这个问题。以下是用 Java 定义一个男人类和一个女人类,继承人类的成员属性,包括姓名和身高。男人类有独有的方法花钱,女人类有独有的方法化妆。
```
public class Person {
String name;
int height;
}
public class Man extends Person {
public void spendMoney() {
// 花钱的方法
}
}
public class Woman extends Person {
public void makeup() {
// 化妆的方法
}
}
```
相关问题
java使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果向造人的工厂方法传入参数“M”,则返回一个男人(MAN)对象,如果传入参数“W”则返回一个Woman对象,Robot类传入参数“R”返回一个robot对象
好的,下面是使用简单工厂模式模拟女娲造人的代码:
首先,我们需要定义一个Person接口,包含一个实现生命的方法:
```java
public interface Person {
void live();
}
```
然后,我们定义MAN、Woman和Robot三个类,它们实现了Person接口:
```java
public class MAN implements Person {
@Override
public void live() {
System.out.println("I am a man, I can work hard.");
}
}
public class Woman implements Person {
@Override
public void live() {
System.out.println("I am a woman, I can give birth to a baby.");
}
}
public class Robot implements Person {
@Override
public void live() {
System.out.println("I am a robot, I can do things that human can't do.");
}
}
```
接下来,我们定义一个简单工厂类,根据传入的参数来创建相应的对象:
```java
public class PersonFactory {
public static Person createPerson(String type) {
if ("M".equals(type)) {
return new MAN();
} else if ("W".equals(type)) {
return new Woman();
} else if ("R".equals(type)) {
return new Robot();
} else {
throw new IllegalArgumentException("Invalid type: " + type);
}
}
}
```
最后,我们可以在客户端代码中使用工厂来创建相应的对象:
```java
public class Client {
public static void main(String[] args) {
Person man = PersonFactory.createPerson("M");
man.live();
Person woman = PersonFactory.createPerson("W");
woman.live();
Person robot = PersonFactory.createPerson("R");
robot.live();
}
}
```
输出结果为:
```
I am a man, I can work hard.
I am a woman, I can give birth to a baby.
I am a robot, I can do things that human can't do.
```
实现一个 family 类,包括 man 类,woman 类、kid 类、pet 类。其成员函数包括 getinfo, 输出该 family 对象的所有成员信息,getHusband、getWife 等输出各个成员信息。setXXXinfo 成员函数是针对不同成员变量的设置函数。 设计一个 human 类,包括 姓名、性别、身高和体重,年龄等信息。man 类、woman 类、 kid 类都是它的子类。设计一个 pet 类,包括种类、体重、年龄、颜色、品种等信息。 getHealthy()根据身高体重年龄等信息去估计人体的健康状态,setDiet 是根据健康 状态和对象类型,推荐一天摄入的蛋白质,脂肪和碳水的质量。因为男、女和婴儿的计算公 式不一样,所以两个办法要单独实现。 重载 family 类的对象的“++”操作,表示其内部对象年龄增长一岁。 重载 human 类的加法“+”操作,该操作要求运算对象是一男一女且未婚,操作内容是 进行婚姻登记,生成一个新的 family 类的对象。 重载 family 类的“/”操作,它是单目运算符,表示离婚,生成一个 man 类和一个 woman 类的对象
好的,根据你的要求,我将为你设计一个符合要求的类结构。以下是示例代码:
```cpp
#include <iostream>
using namespace std;
class human {
protected:
string name;
string gender;
float height;
float weight;
int age;
public:
human(string n, string g, float h, float w, int a) : name(n), gender(g), height(h), weight(w), age(a) {}
void getHealthy() {
// 根据身高、体重、年龄等信息估计人体健康状态的实现
// ...
}
void setDiet() {
// 根据健康状态和对象类型推荐一天摄入的蛋白质、脂肪和碳水化合物的质量的实现
// ...
}
};
class pet {
protected:
string species;
float weight;
int age;
string color;
string breed;
public:
pet(string s, float w, int a, string c, string b) : species(s), weight(w), age(a), color(c), breed(b) {}
};
class man : public human {
public:
man(string n, string g, float h, float w, int a) : human(n, g, h, w, a) {}
};
class woman : public human {
public:
woman(string n, string g, float h, float w, int a) : human(n, g, h, w, a) {}
};
class kid : public human {
public:
kid(string n, string g, float h, float w, int a) : human(n, g, h, w, a) {}
};
class family {
private:
man husband;
woman wife;
kid child;
pet familyPet;
public:
family(man h, woman w, kid c, pet p) : husband(h), wife(w), child(c), familyPet(p) {}
void getinfo() {
cout << "Husband: " << husband.name << endl;
cout << "Wife: " << wife.name << endl;
cout << "Child: " << child.name << endl;
cout << "Pet: " << familyPet.species << endl;
}
void getHusband() {
cout << "Husband: " << husband.name << endl;
}
void getWife() {
cout << "Wife: " << wife.name << endl;
}
// 其他成员函数的实现
};
void operator++(family& f) {
// 重载 family 类的对象的"++"操作,表示其内部对象年龄增长一岁的实现
// ...
}
family operator+(const man& m, const woman& w) {
// 重载 human 类的加法"+"操作,进行婚姻登记,生成一个新的 family 类的对象的实现
// ...
}
void operator/(family& f) {
// 重载 family 类的"/"操作,表示离婚,生成一个 man 类和一个 woman 类的对象的实现
// ...
}
int main() {
man john("John", "Male", 180, 75, 30);
woman lisa("Lisa", "Female", 165, 55, 28);
kid child("Tom", "Male", 120, 30, 5);
pet dog("Dog", 10, 3, "Brown", "Labrador");
family f(john, lisa, child, dog);
f.getinfo();
return 0;
}
```
请注意,由于篇幅限制,上述示例代码只是一个简化的版本,实际应用中可能需要更多的类成员和函数来满足具体需求。这里只是提供了一个基本的框架,你可以根据自己的需要进行扩展和修改。
希望这个示例能够帮助到你!如果有任何问题,请随时提问。
阅读全文