CE203 revision Lecture 3 onwards
Inheritance
To invoke the constructor from the superclass within the subclass constructor, you have to use the
‘super’ command which must be the first statement in the constructor
If the statement does not exist then a no-argument error will occur
A superclass may refer to an object of the subclass
To access subclass method for a variable declaration, you must use downcasting, this tells the
compiler that the variable will refer to a subclass object
This can be done like
Int r = ((subclass)subclassObect).method();
The odd parentheses order is necessary since method application has a higher precedence than
downcasting, without them the downcast would be applied to the result of just the method name
If the subclass object variable didn’t refer to the subclass, an exception called ClassCastException will
be thrown.
Subclass objects can be stored in an array of superclass objects
If you wish to find all the subclass objects in an array of both the superclass and sub class, you should
use ‘instanceof’. Example below:
For (int i = 0; I < a.length; i++)
If(a[i] instanceof subclass)
System.out.println(a[i]);
To copy the contents of one array into another, you can use a method which takes both the arrays as
Object[] arguments, throws ArrayStoreException if the destination array is shorter than the source,
and then iterates through the items of the source array and dest[i] = source[i]
The method only works if the element types of both arrays’ arguments are the same, for example
both int.
And if the source array type is a subclass of the destination array type
Abstract classes:
An abstract class is a class that cannot be instantiated, only inherited from.
All inheriting classes can use methods from the abstract class
Abstract classes provide more a framework that allows subclasses to be interchanged with other
inheriting subclasses, similar to headers in C++.
Interfaces:
Inheritance
To invoke the constructor from the superclass within the subclass constructor, you have to use the
‘super’ command which must be the first statement in the constructor
If the statement does not exist then a no-argument error will occur
A superclass may refer to an object of the subclass
To access subclass method for a variable declaration, you must use downcasting, this tells the
compiler that the variable will refer to a subclass object
This can be done like
Int r = ((subclass)subclassObect).method();
The odd parentheses order is necessary since method application has a higher precedence than
downcasting, without them the downcast would be applied to the result of just the method name
If the subclass object variable didn’t refer to the subclass, an exception called ClassCastException will
be thrown.
Subclass objects can be stored in an array of superclass objects
If you wish to find all the subclass objects in an array of both the superclass and sub class, you should
use ‘instanceof’. Example below:
For (int i = 0; I < a.length; i++)
If(a[i] instanceof subclass)
System.out.println(a[i]);
To copy the contents of one array into another, you can use a method which takes both the arrays as
Object[] arguments, throws ArrayStoreException if the destination array is shorter than the source,
and then iterates through the items of the source array and dest[i] = source[i]
The method only works if the element types of both arrays’ arguments are the same, for example
both int.
And if the source array type is a subclass of the destination array type
Abstract classes:
An abstract class is a class that cannot be instantiated, only inherited from.
All inheriting classes can use methods from the abstract class
Abstract classes provide more a framework that allows subclasses to be interchanged with other
inheriting subclasses, similar to headers in C++.
Interfaces: