Inheritance in Matlab Object Oriented Programming - Matlab OOP 10 | applied electronics engineering

Latest

Inheritance in Matlab Object Oriented Programming - Matlab OOP 10

By Applied Electronics - Friday, February 10, 2017 No Comments
In this matlab object oriented programming tutorial we explain what is inheritance and how it works in Matlab software. This is the 10th tutorial of Object Oriented Programing with Matlab.

Inheritance in object oriented programming is a phenomenon in which a class inherits(or acquires) properties or methods or both from another class. The class which inherits is called subclass or the child class and the class from which a class inherits is called superclass or the parent class.

If for example rect is a superclass and box is a subclass, then box will inherit properties or methods or both from rect class. The subclass can also have its own properties and methods besides the inherited properties and methods.

To tell Matlab software that a class is a subclass of another class the operator '<' is used. And for inheritance of properties the '@' symbol is used.

Example of Inheritance in Matlab Object Oriented Programming


Consider that rect is a super class with properties length l and width w. The definition of class rect is as follows.

classdef rect

    properties
        l = 0;
        w = 0;
    end
    
    methods
        function rectObj = rect(v1, v2)
            if nargin > 0
                rectObj.l = v1;
                rectObj.w = v2;
            end
        end
    end
    
end

Lets now create a sub-class box which inherits length l and width w from rect super class. Also let the box has its own property of height h. Then the class would be written as follows:


classdef box < rect
    
    properties 
        h = 0;
    end
    
    methods 
        function boxObj = box(v1, v2, v3)
            if nargin < 3
                v1 = 0;
                v2 = 0;
                v3 = 0;
            end
            boxObj@rect(v1, v2);  %inheritance of v1 and v2
            boxObj.h = v3;
        end
        
        function calVol = vol(boxObj)
            calVol = boxObj.l*boxObj.w*boxObj.h;
        end
    end
    
 end

As you can see we have used the < operator to signify that this box class is a subclass of rect. Then we have declared the box properties. In the method we have created a constuctor for the box class. The constructor object height is the same as the initialized height h. However, since we want to inherit the properties length l and width w we have used the box object followed by @ symbol followed by the rect class constructor and the arguments, that is boxObj@rect(v1,v2).At the end you can see a method called vol that calculates the volume of the box.

Creating Object


Now we will show how to create object of class box and show that it has inherited the length(l ) and width(w) from the rect class. See the following code:

>> box1 = box

box1 = 

  box with properties:

    h: 0
    l: 0
    w: 0

This shows that the box1 object of subclass box has inherited the length l and width w from the superclass rect.

We can specify the h, l and w now and calculate the volume of the box using the vol method.

>> box1.l = 4;
>> box1.w = 2;
>> box1.h = 2;
>> box1.vol

ans =

    16

So in this way the inheritance in Matlab Object Oriented class and object works.
The things to remember in using inheritance in matlab is:
  1. To use the < operator during the declaring the class name. This operator tells whether the class being created is a subclass and if so which is the superclass.
  2. To use the @ symbol while specifying the properties and method to be inherited


No Comment to " Inheritance in Matlab Object Oriented Programming - Matlab OOP 10 "