Skip to ContentGo to accessibility pageKeyboard shortcuts menu
OpenStax Logo

Highlights from this chapter include:

  • Inheritance describes an is-a relationship between classes. One class, the subclass, inherits from another class, the superclass.
  • Subclasses can access inherited attributes and methods directly.
  • Subclasses can override superclass methods to change or add functionality.
  • super() allows a subclass to access the methods of the superclass.
  • Polymorphism describes a single representation for multiple forms and is applied in Python to define multiple methods with the same name and allow the same method to take different arguments.
  • Hierarchical inheritance is a type of inheritance in which multiple classes inherit from a single superclass.
  • Multiple inheritance is a type of inheritance in which one class inherits from multiple classes.
  • Mixin classes are used in multiple inheritance to add functionality to a subclass without adding inheritance concerns.

At this point, you should be able to write subclasses that inherit instance attributes and methods, and subclasses that have unique attributes and overridden methods. You should also be able to create hierarchical inheritance relationships and multiple inheritance relationships between classes.

Task Example
Define a subclass
class SuperClass:
  pass

class SubClass(SuperClass):
  pass

Define a subclass's __init__() using super()

class SubClass(SuperClass):
  def __init__(self):
    super().__init__() # Calls superclass __init__()
    # Initialize subclass instance attributes
Override a superclass method
class SuperClass:
  def display(self):
    print('Superclass method')

class SubClass(SuperClass):
  def display(self): # Same name as superclass method
    print('Subclass method')
Implement hierarchical inheritance
class SuperClass:
  def display(self):
    print('Superclass method')

class SubClass1(SuperClass):
  def display(self):
    print('Subclass 1 method ')
class SubClass2(SuperClass):
  def display(self):
  print('Subclass 2 method')

class SubClass3(SuperClass):
  def display(self):
    print('Subclass 3 method')
Implement multiple inheritance
class SuperClass1:
    pass

class SuperClass2:
    pass

class SubClass(SuperClass1, SuperClass2):
    pass
Table 13.2 Chapter 13 reference.
Citation/Attribution

This book may not be used in the training of large language models or otherwise be ingested into large language models or generative AI offerings without OpenStax's permission.

Want to cite, share, or modify this book? This book uses the Creative Commons Attribution License and you must attribute OpenStax.

Attribution information
  • If you are redistributing all or part of this book in a print format, then you must include on every physical page the following attribution:
    Access for free at https://openstax.org/books/introduction-python-programming/pages/1-introduction
  • If you are redistributing all or part of this book in a digital format, then you must include on every digital page view the following attribution:
    Access for free at https://openstax.org/books/introduction-python-programming/pages/1-introduction
Citation information

© Feb 26, 2024 OpenStax. Textbook content produced by OpenStax is licensed under a Creative Commons Attribution License . The OpenStax name, OpenStax logo, OpenStax book covers, OpenStax CNX name, and OpenStax CNX logo are not subject to the Creative Commons license and may not be reproduced without the prior and express written consent of Rice University.