160 likes | 637 Views
MIS 4395.A Structured Programming Language. Ahmed Imran Kabir Week 11, Inheritance. Inheritance defined. Inheritance is a powerful feature in object oriented programming.
E N D
MIS 4395.AStructured Programming Language Ahmed Imran Kabir Week 11, Inheritance
Inheritance defined • Inheritance is a powerful feature in object oriented programming. • It refers to defining a new class with little or no modification to an existing class. The new class is called derived (or child) class and the one from which it inherits is called the base (or parent) class. Python Inheritance Syntax class BaseClass: Body of base class class DerivedClass(BaseClass): Body of derived class Derived class inherits features from the base class, adding new features to it. This results into re-usability of code.
Guide to Programming with Python Characteristics of Inheritance • Inheritance makes objects (classes) special • Derive new classes from existing ones • Extend the definition of existing classes • Override method definitions of existing classes • Create objects of different classes in the same program • Allow objects to communicate with each other • Create more complex objects by combining simpler ones
Guide to Programming with Python Inheritance Models “is a” Relationship Car Sports car Convertible Van Animals Mammals Fish Reptile Dog Cat Human
Using Inheritance to Create New Classes • Inheritance: An element of OOP that allows a new class to be based on an existing one where the new automatically gets (or inherits) all of the methods and attributes of the existing class • The children classes get all the capabilities (methods) and properties (attributes) the parent class has; the children classes are also called derived classes • Get the code for free! (code-reuse) – inheritance allows a new class to re-use code which already existed in another class (the parent class) Guide to Programming with Python
Derived Classes are New Classes • To create specializations of existing classes or objects by adding new attributes and methods! • often called subtyping when applied to classes. In specialization, the new class or object has data or behavior aspects that are not part of the inherited class. • Over-ridding (e.g., over-ridding of the + operator, so + has different meaning, addition of two numbers, concatenation of two strings, etc) – the same method that does something different Guide to Programming with Python
Altering the Behavior of Inherited Methods: Overriding • Override: To redefine how inherited method of base class works in derived class • Two choices when overriding • Completely new functionality vs. overridden method • Incorporate functionality of overridden method, add more Guide to Programming with Python
Understanding Polymorphism • Polymorphism: Aspect of object-oriented programming that allows you to send same message to objects of different classes, related by inheritance, and achieve different but appropriate results for each object Guide to Programming with Python
Working with Multiple Objects • We can have multiple objects in a program • Message: Communication between objects; one object sends another a message when it invokes a method of the other (We already know that we can exchange information among functions through parameters and return values) Guide to Programming with Python
Types of Inheritance Guide to Programming with Python
Types of Inheritance • Single Inheritance in Python A single Python inheritance is when a single class inherits from a class. • Python Multiple Inheritance Multiple Python inheritance are when multiple python classes inherit from a class. • Multilevel Inheritance in Python When one class inherits from another, which in turn inherits from another, it is multilevel python inheritance. Guide to Programming with Python
Types of Inheritance (Cont.) • Hierarchical Inheritance in Python When more than one class inherits from a class, it is hierarchical Python inheritance. • Hybrid Inheritance in Python Hybrid Python inheritance is a combination of any two kinds of inheritance. • Examples to try at home: https://data-flair.training/blogs/python-inheritance/ Guide to Programming with Python
Types of Inheritance Guide to Programming with Python
Python Inheritance Super Function – Super() • With inheritance, the super() function in pythonactually comes in quite handy. It allows us to call a method from the parent class. Let’s define a new class for this. Guide to Programming with Python
Python override method • A subclass may change the functionality of a Python method in the superclass. It does so by redefining it. This is termed python method overriding. Lets see this Python Method Overriding Example. Guide to Programming with Python
Conclusion • For further practice on Object-oriented-programming: • https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming) • https://www.studytonight.com/python/types-of-inheritance • https://www.programiz.com/python-programming/inheritance • https://data-flair.training/blogs/python-inheritance/ Guide to Programming with Python