python中继承指的是什么意思
更新时间:2023-12-26继承的概念
在面向对象编程中,一个类可以从另一个类继承,这意味着它会获得另一个类的所有属性和方法。原始类称为父类或超类,新类称为子类或派生类。
Python中的继承是通过在类定义中包含父类名称来实现的。例如,一个子类可以继承一个父类的所有属性和方法,如下所示:
class ParentClass:
def __init__(self, name):
self.name = name
def print_name(self):
print("Name:", self.name)
class ChildClass(ParentClass):
def __init__(self, name, age):
ParentClass.__init__(self, name)
self.age = age
def print_age(self):
print("Age:", self.age)
child = ChildClass("Tom", 25)
child.print_name()
child.print_age()
在上面的代码中,ChildClass继承了ParentClass,这意味着ChildClass可以访问ParentClass的所有属性和方法。
单继承和多继承
Python支持单继承和多继承。单继承意味着一个子类只能继承一个父类,而多继承允许一个子类继承多个父类。
下面是使用多继承的示例:
class ParentClass1:
def method1(self):
print("ParentClass1 Method")
class ParentClass2:
def method2(self):
print("ParentClass2 Method")
class ChildClass(ParentClass1, ParentClass2):
def method3(self):
print("ChildClass Method")
child = ChildClass()
child.method1()
child.method2()
child.method3()
在上面的代码中,ChildClass继承了两个父类ParentClass1和ParentClass2,这意味着它可以访问这两个父类的所有属性和方法。
方法重写
子类可以重写(overwrite)父类的方法。这意味着子类可以创建一个与父类方法具有相同名称但不同实现的方法。例如:
class ParentClass:
def method1(self):
print("ParentClass Method1")
def method2(self):
print("ParentClass Method2")
class ChildClass(ParentClass):
def method1(self):
print("ChildClass Method1")
child = ChildClass()
child.method1()
child.method2()
在上面的代码中,ChildClass重写了ParentClass的method1方法,因此它的实现与父类不同。当我们调用child.method1()时,它将输出“ChildClass Method1”而不是“ParentClass Method1”。
超继承
有时,我们需要在子类中调用其父类的方法。我们可以使用超继承(super inheritance)来实现这一点。下面是一个例子:
class ParentClass:
def method1(self):
print("ParentClass Method1")
class ChildClass(ParentClass):
def method1(self):
super().method1()
print("ChildClass Method1")
child = ChildClass()
child.method1()
在上面的代码中,ChildClass重写了ParentClass的method1方法,并使用super()函数调用了它。当我们调用child.method1()时,它的输出包括“ParentClass Method1”和“ChildClass Method1”。