14. Inheritance and Derived Class

A class is a software entity that has internal data and a set of methods or functions that act upon that data.

All well and good. But classes have another powerful property, namely 'inheritance'.

Inheritance means that the data and methods of a class are automatically inherited by any other class derived from the original one.

Example

We had a class called 'Box' that was defined as follows

class Box() {
private var width
private var height


  public function Box() {
    var myBox = new Box
  }


  public setHeight(x) {
    myBox.height = x
  }

}

In an object oriented language, it is possible to create another class called a 'derived class' that is based on an existing class - in this case the class called Box. The derived class has all the properties of the 'superclass' (the parent class) and also some data and methods of its own. Another description of a derived class is 'subclass'

Let's consider a class called ColouredBox shown below

class ColouredBox extends Box() {
private var colour



  public function ColouredBox() {
    var colBox = new ColouredBox
  }


  public setColour(x) {
    colBox.colour = x
  }

}

In this example, the original class called Box has been 'extended' into a class called ColouredBox This class has all the properties of Box but also one additional data property called 'colour'. And in order to change the colour of the box, a new method called setColour() has been defined.

Going on with the example, let the main program instantiate an object of class ColouredBox and manipulate it - like so

Main program {
        theBox = ColouredBox()
        
        theBox.setHeight(20)
        theBox.setColour('Red')
       
      }

Notice that the object called theBox is still able to call the setHeight method, even though it is not present in the ColouredBox code above.

This method has been inherited from the superclass called Box.

The code then goes on to set the colour of the new object using its own, specific method(s)..

 

Challenge see if you can find out one extra fact on this topic that we haven't already told you

Click on this link: Inheritance and derived classes

 

 

Copyright © www.teach-ict.com