在Python中,继承是通过在子类定义时指定父类来实现的。下面是如何在Python中实现继承的基本步骤和示例:
基本语法
```python
class ParentClass:
父类的属性和方法
class ChildClass(ParentClass):
单继承示例
```python
class Animal:
def __init__(self, name):
self.name = name
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Woof!"
class Cat(Animal):
def make_sound(self):
return "Meow!"
创建子类的实例
dog = Dog("Buddy")
cat = Cat("Whiskers")
调用继承自父类的方法
print(dog.name) 输出: Buddy
print(cat.name) 输出: Whiskers
调用子类中覆盖的方法
print(dog.make_sound()) 输出: Woof!
print(cat.make_sound()) 输出: Meow!
多继承示例
```python
class Master:
def __init__(self):
self.skill = "炒菜"
def showSkill(self):
print(self.skill)
class Bagger:
def __init__(self):
self.skill = "乞讨"
def showSkill(self):
print(self.skill)
class Man(Master, Bagger):
pass
创建多继承的实例
man = Man()
man.showSkill() 输出: 炒菜
重写父类方法示例
```python
class Parent:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"Hello, my name is {self.name}.")
class Child(Parent):
def say_hello(self):
print(f"Hello, my name is {self.name}, and I'm a child.")
创建子类的实例
child = Child("Alice")
child.say_hello() 输出: Hello, my name is Alice, and I'm a child.
接口继承(抽象基类)示例
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius * self.radius
创建子类的实例
rect = Rectangle(3, 4)
print(rect.area()) 输出: 12
circle = Circle(5)
print(circle.area()) 输出: 78.483
以上示例展示了如何在Python中实现继承,包括单继承、多继承、重写父类方法以及接口继承(抽象基类)。您可以根据需要选择适合的继承方式