Article Preview
Buy Now
COLUMN
Advanced Techniques
Object Oriented Programming in REALbasic
Issue: 1.3 (December/January 2002)
Author: Thomas Reed
Author Bio: Thomas Reed has been programming as a hobbyist for more than 20 years, and fell in love with the Mac in 1984.
Article Description: No description available.
Article Length (in bytes): 11,758
Starting Page Number: 30
Article Number: 1315
Resource File(s):
1315.zip Updated: 2013-03-11 19:07:56
Related Link(s): None
Excerpt of article text...
When you work in REALbasic, there is no escaping from object-oriented programming (OOP). Everything you do centers around objects -- windows, controls, and even your own custom classes. Nonetheless, there is much more lurking under the surface of REALbasic's classes than is immediately evident. This column will look at several facets of OOP like class inheritance, method overloading, and class interfaces.
Inheritance
One of the most important concepts in any object-oriented approach is inheritance. Inheritance allows you to create new classes that are based on existing classes, thus allowing you to reuse existing code. For example, suppose you are writing a simulator program in which you create a Vehicle class, which includes information about velocity, among other things. If you want to add a Car class to the simulator, it is easy to create Car as a subclass of Vehicle. The new class inherits all properties and methods of the super (or parent) class, and can also define its own properties and methods. For example, your Car class should have methods for dealing with movement provided by the Vehicle parent class, and might extend that by adding methods for trunk capacity, engine type, sunroof, and number of doors.
In REALbasic, you can set your custom class' parent class using the Super field of the Properties window. In some OOP languages, such as C++, a class can inherit from multiple other classes (this is called multiple inheritance), but in REALbasic it can only inherit from one. This is not much of a problem though, thanks to class interfaces (covered later).
An instance of a class is also considered to be an instance of all of its parent classes. A Car is not just a Car, it's also a Vehicle. You can pass a Car object to a method that takes a Vehicle as a parameter for example, allowing you to write generalized routines that can act on all types of Vehicle. If you need to find out what specific type of Vehicle it is, you use the "isa" keyword like this:
Sub WhatIsThis(v as Vehicle)
...End of Excerpt. Please purchase the magazine to read the full article.