Inheritance

INHERITS ParentClass

Put this on the beginning of a class file to tell Gambas that the current class inherits the ParentClass class.

What is inherited ?

The class inherits from its parent every method, property, constant and event.

Which class can be a parent class ?

You can inherited any class, even a native one!

For example, you can create a custom MyListBox class that inherits ListBox but allows association a tag with each list item.

Note that you can't use INHERITS in a form class file, because forms already inherits the Form class!

Inheritance and constructor

Contrary to all the object language I know, each class in the inheritance hierarchy consumes the parameters passed to the constructor.

Let's suppose we have the following inheritance tree:

MyListBox ---inherits--> ListBox ---inherits---> Control

So NEW MyListBox() will take two parameters. The first will be sent to MyListBox._new(), the second to ListBox._new(). But the ListBox._new() will be called first. This way, you are sure that the ListBox control exists when you are in MyListBox._new().

You will create a MyListBox control this way:

aMyListBox = NEW MyListBox ( "Name", aContainer )