给出两个类之间继承关系的示例,解释他们不同的和相同的属性和函数
时间: 2023-03-05 21:33:05 浏览: 88
一个示例可以是 `Animal` 和 `Cat` 之间的继承关系。在这个例子中,`Animal` 是父类,`Cat` 是子类,因此 `Cat` 继承了 `Animal` 的属性和方法。下面是一个简单的示例代码:
```python
class Animal:
def __init__(self, species, sound):
self.species = species
self.sound = sound
def make_sound(self):
print(self.sound)
class Cat(Animal):
def __init__(self, name, species, sound):
super().__init__(species, sound)
self.name = name
def meow(self):
print("Meow!")
cat = Cat("Whiskers", "Felis catus", "Purr")
print(cat.name)
print(cat.species)
cat.make_sound()
cat.meow()
```
在这个例子中,`Animal` 类有一个构造函数 `__init__`,它接受 `species` 和 `sound` 两个参数,并创建一个包含这些属性的实例。它还有一个名为 `make_sound` 的方法,它打印 `Animal` 实例的 `sound` 属性。`Cat` 类通过使用 `super()` 调用 `Animal` 类的构造函数来继承了 `Animal` 的构造函数,并添加了一个名为 `name` 的新属性。`Cat` 类还定义了一个名为 `meow` 的新方法,它打印一个字符串表示猫咪的叫声。
现在我们可以创建一个 `Cat` 实例并调用它的属性和方法。我们首先创建一个名为 `Whiskers` 的 `Cat` 实例,并指定它的物种为 `Felis catus`,叫声为 `Purr`。然后,我们打印 `cat` 的名称和物种属性,并调用 `make_sound` 和 `meow` 方法。
相同点:
在这个示例中,父类 `Animal` 和子类 `Cat` 具有相同的 `species` 属性,以及 `make_sound()` 方法。这些相同的属性和方法被继承到子类中,子类可以直接使用这些属性和方法。
不同点:
在这个示例中,子类 `Cat` 比父类 `Animal` 多了一个名为 `name` 的属性和一个名为 `meow()` 的方法。这些新属性和方法是子类特有的,而父类中没有这些属性和方法。