.设计一个father类一个mother 类和一个child类。其中 child 类继承father 类和 mother类。father类和mother类都包含姓和名两个数据成员child类仅包含名数据成员。要求一个child类的对象能够输出父母和自己的姓名。
时间: 2023-07-15 12:14:01 浏览: 124
java类的重用
下面是一个可能的实现:
```python
class Father:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
class Mother:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
class Child(Father, Mother):
def __init__(self, first_name):
super().__init__("John", "Doe") # 默认父亲的姓名为 John Doe
self.first_name = first_name
def print_full_name(self):
print("My name is {} {}, my father's name is {} {}, and my mother's name is {} {}.".format(
self.first_name, self.last_name, self.father.first_name, self.father.last_name, self.mother.first_name, self.mother.last_name))
father = Father("Bob", "Doe")
mother = Mother("Alice", "Doe")
child = Child("Tom")
child.father = father
child.mother = mother
child.print_full_name() # 输出:My name is Tom Doe, my father's name is Bob Doe, and my mother's name is Alice Doe.
```
这里定义了三个类:Father,Mother和Child。Father和Mother类的构造函数都接受两个参数:first_name和last_name,表示名字和姓氏。Child类继承了Father和Mother类,并且只有一个first_name的数据成员。
Child类的构造函数中,我们调用了super()函数来分别调用Father和Mother的构造函数,传入默认的父亲姓名“John Doe”。然后设置了child对象自己的first_name属性。
Child类还定义了一个print_full_name方法,用来输出自己、父亲和母亲的全名。在这个方法中,首先输出了自己的名字和姓氏,然后分别输出了父亲和母亲的名字和姓氏。
在主程序中,我们创建了一个Father对象和一个Mother对象,并将它们分别赋值给Child对象的father和mother属性。然后调用Child对象的print_full_name方法,输出了自己、父亲和母亲的全名。
阅读全文