Python继承示例

时间:2020-02-23 14:42:49  来源:igfitidea点击:

大家好,以python继承为例。
在上一教程中,我们了解了python运算符重载。
在本教程中,我们将讨论python的另一个重要的面向对象功能,即继承。

Python继承

基本上,几乎所有面向对象的编程语言都包含继承。
Python继承使我们能够将一个类的成员属性和方法用于另一个类。

Python继承术语

  • 超类:将从其继承属性和方法的类。

  • 子类:从超类继承成员的类。

  • 方法重写:重新定义子类中已经在超类中定义的方法的定义。

Python继承范例

现在,让我们使用python继承示例程序。

#Line:1, definition of the superclass starts here  
class Person:  
  #initializing the variables  
  name = ""  
  age = 0  

  #defining constructor  
  def __init__(self, personName, personAge):  
      self.name = personName  
      self.age = personAge  

  #defining class methods  
  def showName(self):  
      print(self.name)  

  def showAge(self):  
      print(self.age)  

  #Line: 19, end of superclass definition  

#definition of subclass starts here
class Student(Person): #Line: 22, Person is the  superclass and Student is the subclass
  studentId = ""  

  def __init__(self, studentName, studentAge, studentId):  
      Person.__init__(self, studentName, studentAge)  #Line: 26, Calling the superclass constructor and sending values of attributes.
      self.studentId = studentId  

  def getId(self):  
      return self.studentId  #returns the value of student id
#end of subclass definition

# Create an object of the superclass  
person1 = Person("Richard", 23)  #Line: 35
#call member methods of the objects  
person1.showAge()  
# Create an object of the subclass  
student1 = Student("Max", 22, "102")  #Line: 39
print(student1.getId())  
student1.showName()  #Line: 41

现在,我们将解释上面的示例,以了解继承如何在python中工作。

定义超类

第1-19行定义了超类。
如果您熟悉python类,则无需理会。
类" Person"是使用必要的构造函数,属性和方法定义的。
Python类教程中已经提供了此部分的说明。

定义子类

根据继承规则,子类继承其超类的属性和方法。
第22行显示了子类Student如何将Person扩展为其超类。
在声明子类时,必须在括号中保留超类的名称。
并且构造函数必须使用适当的属性值(如果需要)调用超类构造函数,如第26行所示。
除此之外,一切都与定义普通的python类相同。

在定义了超类和子类之后,我们可以像第35和39行中那样创建超类和子类的对象。
正如我们前面所讲的,子类继承了属性和方法。
您可能在这里注意到,对象student1(Student子类的对象)在其作用域内(第41行)具有showName方法。