Python 教程 - 类继承
在本节中,你将学习 Python 面向对象编程的类继承。
在继承中,从父类创建子类。子类继承父类的所有内容(数据成员和成员函数)。
以下是 Python 中继承的语法:
class ParentClass:
#members
class ChildClass(ParentClass):
#members
在子类中,它具有父类的所有函数,还可以添加新函数。
像下面的示例一样,它具有一个名为 Auto
的父类,并且 car
是从 Auto
继承的一个子类。
>>> class Auto:
def __init__(self, e, n):
self.engine = e
self.name = n
def display(self):
print("Name of Auto: ", self.name)
print("Engine of auto: ", self.engine)
>>> class Car(Auto):
def __init__(self):
self.x= input("Enter name of car: ")
self.y= input("Enter engine of car: ")
Auto.__init__(self,self.y,self.x)
>>> c = Car()
Enter name of car: Prius
Enter engine of car: 1.5l
>>> c.display()
Name of Auto: Prius
Engine of auto: 1.5l
你可以在此处看到可以在 Auto
类中使用 Car
类中的方法。因为 Car
是从 Auto
继承的。
在 Car
的构造函数内部,调用 Auto
的构造函数。Car
的对象可调用 Auto
的所有方法。
Python 类继承方法重写
当子类和父类具有相同的方法时,它就是引起了方法重写。方法重写本质上是一个概念,其中子类更改其父类的方法的实现。
考虑以下示例,其中子类 Car
与 Auto
类中都有相同名称的 display
方法,但是其实现已更改:
>>> class Auto:
def __init__(self, e, n):
self.engine = e
self.name = n
def display(self):
print("Name of Auto: ", self.name)
print("Engine of auto: ", self.engine)
>>> class Car(Auto):
def __init__(self):
self.x= input("Enter name of car: ")
self.y= input("Enter engine of car: ")
Auto.__init__(self,self.y,self.x)
def display(self):
print("You are in child class")
>>> c = Car()
Enter name of car: Prius
Enter engine of car: 1.5l
>>> c.display()
You are in child class
因此,现在在 c
对象中调用 display
方法时,将调用子类的方法。
Python 类多重继承
当一个子类有多个父类时,就会发生多重继承。每个父类的功能均由子类继承。
以下是多重继承的语法:
class A:
#members
class B:
#members
class child(A, B):
#members
例:
>>> class A:
def dispA(self):
print('You are in class A')
>>> class B:
def dispB(self):
print('You are in class B')
>>> class C(A, B):
def dispC(self):
print('You are in class C')
>>> Cobj = C()
>>> Cobj.dispA()
You are in class A
>>> Cobj.dispB()
You are in class B
>>> Cobj.dispC()
You are in class C
应当注意,C
(子类)的对象可以调用其父类 A
和 B
的方法。因此,可以说 C
继承了 A
和 B
的所有内容。
Python 类多级继承
多级继承是指你从另一个子类继承一个子类。
多级继承的语法如下:
class A:
#members
class B(A):
#members
class C(B):
#members
例:
>>> class A:
def dispA(self):
print('You are in class A')
>>> class B(A):
def dispB(self):
print('You are in class B')
>>> class C(B):
def dispC(self):
print('You are in class C')
>>> Cobj = C()
>>> Cobj.dispA()
You are in class A
>>> Cobj.dispB()
You are in class B
>>> Cobj.dispC()
You are in class C
你可以在此处看到 C
类可以调用其父类和祖父母类的方法。
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn