1) 定义人(Person)类,人类中有吃饭方法(eat)和工作方法(work); 2) 定义超人(SuperMan)类,超人类中有救人方法(save)并且超人也属于人类; 3) 要求:使用多态的方式创建超人对象,调用吃饭和工作的方法。再将此对象转为超人对象,调用救人的方法。
时间: 2024-02-05 13:02:42 浏览: 28
好的,我了解了您的要求,现在来回答您的问题:
1)定义人(Person)类,人类中有吃饭方法(eat)和工作方法(work):
```
class Person:
def eat(self):
print("Person is eating.")
def work(self):
print("Person is working.")
```
2)定义超人(SuperMan)类,超人类中有救人方法(save)并且超人也属于人类:
```
class SuperMan(Person):
def save(self):
print("SuperMan is saving people.")
```
3)使用多态的方式创建超人对象,调用吃饭和工作的方法。再将此对象转为超人对象,调用救人的方法。
```
# 多态创建超人对象
person = SuperMan()
# 调用人类的方法
person.eat()
person.work()
# 将person对象转为超人对象
person = SuperMan(person)
# 调用超人类的方法
person.save()
```
注意,在使用多态方式创建超人对象时,需要将普通人对象作为参数传入超人类的构造方法中。这样用普通人对象实例化的超人类对象,就可以调用普通人类中的方法,以及超人类中独有的救人方法。
相关问题
person 类中如何定义两种构造方法
person 类通常可以定义两种构造方法:无参构造方法和有参构造方法。
无参构造方法一般形式为:
```
public Person() {
// 初始化操作
}
```
有参构造方法一般形式为:
```
public Person(String name, int age) {
this.name = name;
this.age = age;
}
```
其中参数 name 和 age 是需要传递进来的人的姓名和年龄,`this.name` 和 `this.age` 表示当前对象的姓名和年龄属性。
person 类中定义两种构造方法
很高兴为您解答。person 类中定义两种构造方法是因为在不同场景下可能需要传入不同的参数来创建对象。一种常见的构造方法是提供一个参数列表,用于初始化对象的属性;另一种构造方法是提供一个默认参数列表,如果参数不够也能创建对象。这样可以方便程序员根据需求选择不同的构造方法来创建对象。希望能解答您的问题。