![]() ![]() ![]() A rectangle IS a quadrilateral, and so IS a square. Hence, animal is the base class, while dog and cat are inherited classes.Ī quadrilateral has four sides. Inheritance comes into picture when a new class possesses the 'IS A' relationship with an existing class.ĭog IS an animal. In OOP terminology, this characteristic is called inheritance, the existing class is called base or parent class, while the new class is called child or sub class. Unfortunately, we won’t have time to cover the topic of Multiple inheritance in this workshop… because it’s out of scope.We often come across different products that have a basic model and an advanced model with added features over and above basic model.Ī software modelling approach of OOP enables extending the capability of an existing class to build a new class, instead of building from scratch. This type of design pattern encourages code with composable architecture. Mixin classes tend to be used to quickly and easily add additional properties and methods into a class. One common use case for multiple inheritance in Python is for a type of class called a Mixin. It’s not as commonly used for simple programs, but you’ll see it more often as you start using libraries. Multiple Inheritance in PythonĬan Python classes inherit from multiple parent classes? Yes, this is called multiple inheritance. Notice there is no _init_() function in Motorcycle - the number_of_wheels variable is overridden but instantiating a Motorcycle just goes straight to the Vehicle._init_() method. Likewise, Motorcycle overrides just the number_of_wheels variable to equal 2. Note how our Truck’s class variable number_of_wheels overrode the parent class Vehicle’s number_of_wheels (or, to be more specific, the interpreter found number_of_wheels in a closer scope, the Truck class, and did not need to continue searching up the hierarchy). Let’s update our vehicle.py file: class Vehicle:ĭef _init_(self, make, model, fuel="diesel"): We can, of course, use a subclass to override variables that belong to a parent class. Behold: > from vehicle import Vehicle, Car Don’t forget to import your Vehicle and Car classes. Note that even though the variables are stored at the Vehicle level, they are instance variables because self is bound to my_car, which is a Car, which is a Vehicle. In _init_(), we call super()._init_(), which resolves to our parent class, Vehicle, and runs its _init_ function, where the variables are stored. When we instantiate a Car instance, the interpreter calls _init_(), where we pass in two arguments ( make and model) and an optional 3rd ( fuel, which defaults to “gas”). class Vehicle:ĭef _init_(self, make, model, fuel="gas"): In a file called vehicle.py, let’s create a parent Vehicle class, and have our Car class be a subclass. We can do the same with our own classes, too. Objects that belong to classes that are higher up in the hierarchy (more generic) are accessible by subclasses, but not vice versa.Įarlier, we saw that bool is a subclass of int, thus, it inherited the properties and methods of the int class, and then extended it to be more specific to booleans. Inheritance makes it possible to break up and organize your code into a hierarchy, from generic to specific. The course content is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.Ĭlass inheritance is a very useful Object-oriented Programming construct for sharing and reusing code.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |