Pascal has two implementations for OOP, the
object and the
class. There are notable differences between the two.
object is similar to a
record in Pascal, except that it has methods. Methods can be procedures or functions. An
object supports almost all the paradigms of OOP except for polymorphism. Moreover, an
object is allocated on the stack.
class supports polymorphism and is allocated on the heap. A variable of type
class is actually a pointer to the
class object that has been allocated on the heap.
Classes can only be defined in the outermost scope of a unit or a program, not in any function or procedure. They must be defined under the
type className = class [abstract | sealed] (ancestorClass) memberList end;
sealed are optional keywords. If a class is instantiated with the
seal keyword, it means it cannot be extended through inheritance while
abstract is used to declare a class as abstract, even if it does not contain any virtual or abstract methods. You can only use one of the two keywords while instantiating a class.
memberList refers to all the declarations of all the members of the class. This includes both variables and methods. A member’s visibility can be set using the keyword
public member is accessible from anywhere within the same module and outside the module as well. A
private member is visible only within the same module as the class declaration, and a
private member is only visible to classes that inherit from the base class.
View all Courses