目录
一、继承
在Python中,继承是面向对象编程中的重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以继承父类的属性和方法,并且可以添加自己特有的属性和方法。
要创建一个子类并继承父类,可以按照以下方式进行:
class ParentClass:
def __init__(self, name):
self.name = name
def display_name(self):
print("Name:", self.name)
class ChildClass(ParentClass):
def __init__(self, name, age):
super().__init__(name)
self.age = age
def display_age(self):
print("Age:", self.age)
# 创建一个子类实例
child = ChildClass("Alice", 25)
# 调用继承自父类的方法
child.display_name()
# 调用子类自己的方法
child.display_age()
在上面的例子中,ParentClass
是父类,ChildClass
是子类。子类ChildClass
继承了父类ParentClass
的属性和方法,并添加了自己的属性和方法。
要调用父类的方法,可以使用super()
函数来访问父类的方法。通过继承,子类可以重用父类的代码,并且可以实现代码的重用和扩展。
单继承
在Python中,类默认是采用单继承的方式。这意味着每个类只能继承自一个父类。如果一个类需要继承多个父类的属性和方法,可以使用多重继承的方法。但是在实际开发中,多重继承可能会导致代码结构变得复杂,增加维护的难度,因此要谨慎使用多重继承。
、
举例:
多继承
在Python中,多继承是一种面向对象编程的特性,允许一个子类继承自多个父类。多继承使得子类可以同时具有多个父类的属性和方法。
以下是一个简单的多继承示例:
class Parent1:
def method1(self):
print("Method from Parent1")
class Parent2:
def method2(self):
print("Method from Parent2")
# 子类同时继承Parent1和Parent2
class Child(Parent1, Parent2):
def method3(self):
print("Method from Child")
# 创建子类实例
child = Child()
# 调用继承自Parent1的方法
child.method1()
# 调用继承自Parent2的方法
child.method2()
# 调用子类自己的方法
child.method3()
在上面的例子中,Child
类同时继承自Parent1
和Parent2
两个父类。子类Child
可以访问父类Parent1
和Parent2
中定义的方法,也可以定义自己的方法。
方法的重写
在 Python 中,方法的重写是指子类重新定义父类中已有的方法。当子类继承自父类并且重新定义了父类中已有的方法时,称为方法的重写。重写方法可以根据子类的需求来修改方法的行为或添加新的功能。
当子类重新定义了父类中已有方法的时候,子类对象调用该方法时会执行子类中的方法而非父类中的方法。这样可以实现对父类方法的定制化,符合不同子类的特定需求。
以下是一个简单的示例,演示如何在 Python 中重写方法:
class Animal:
def make_sound(self):
print("Animal makes a sound")
class Dog(Animal):
def make_sound(self):
print("Dog barks")
class Cat(Animal):
def make_sound(self):
print("Cat meows")
animal = Animal()
dog = Dog()
cat = Cat()
animal.make_sound() # Output: Animal makes a sound
dog.make_sound() # Output: Dog barks
cat.make_sound() # Output: Cat meows
在上面的示例中,Dog
和 Cat
类分别重写了 Animal
类中的 make_sound
方法,使得每个类对象调用 make_sound
方法时输出对应的声音。