Professional Documents
Culture Documents
Inheritance: CS F213: Object Oriented Programming
Inheritance: CS F213: Object Oriented Programming
Inheritance: CS F213: Object Oriented Programming
Dipanjan Chakraborty
Department of CS&IS
1
Advantages and Features
●
Cornerstones of OOP
●
Allows creation of hierarchical classifications
●
General Class defines common features
– Called Superclass in Java
●
Specific classes inherit the general class and add features which are
unique to them
– Called Subclass in Java
●
Example: a student is a subclass of a person
2
Advantages and Features
●
Java Syntax:
– Class B extends A {}
●
Java does not support multiple inheritance
– This is not allowed:
● class B extends A, C {}
●
Subclass includes all members of superclass, but can not
access private members
3
The super keyword
●
Can call the super class’ constructor:
super(args)
●
Can pass object of same type to super class’
constructor:
SubClass(Subclass sc) {
super(sc);
}
4
The super keyword
●
Can be used to refer to the super class’ non-
private members (data and methods)
●
Specially useful when the superclass members
are hidden (usage of same name in subclass
and super class
5
Inheritance
●
Extend the Rectangle class to create a Square
class
6
Subclass References
Square s = new Square(5);
Rectangle r = new Rectangle();
r = s;
r.diagonal = 9;
8
Multi-level Hierarchy
●
In which order are constructors called?
– In the order of derivation
– If class A {}
– class B extends A {}
– class C extends B {}
– A(), B(), C() are called in that order
●
Let’s look at an example
9
Method Overriding
●
In a class hierarchy, when a method in a subclass has the same name and type
signature as a method in its superclass, then the method in the subclass is said to
override the method in the superclass
●
When an overridden method is called through its subclass, it will always refer to the
version of that method defined by the subclass
●
The version of the method defined by the superclass will be hidden
● Superclass’ hidden method may be executed using the super keyword
●
Method overriding occurs only when the names and the type signatures of the two
methods are identical. If they are not, then the two methods are simply overloaded.
●
Note: what is the difference between overloading and overriding?
10
Dynamic Method Dispatch
●
Runtime polymorphism
●
A call to an overridden method is resolved at
run time, rather than at compile time
●
The type of object being referred to, rather than
the reference variable type, determines which
version of the overridden method is called
11
Dynamic Method Dispatch
1
2
Square s = new Square();
Rectangle r = new Rectangle();
●
In line 6, Although r is
3
4 s.getArea();
of type Rectangle, it
5
6
r.getArea();
r = s;
refers to an object of
7 r.getArea(); type Square.
●
So s.getArea() would
be trigered in line 7.
12
Abstract Classes
●
Sometimes superclasses might declare the interface
for a method without defining it
●
It is left to the subclasses to define the
implementation
●
Example: area for a polygon would be undefined, but
for a triangle or a rectangle would be defined
separately
13
Abstract Classes and Methods
● Abstract methods must be declared with the keyword abstract
– abstract type name(parameter-list);
●
Any class that contains one or more abstract methods must also be declared abstract
– abstract class A {}
●
There can be no objects of an abstract class
●
There can not be abstract constructors or abstract static methods. Abstract classes can
contain concrete methods in addition to abstract methods
●
Any subclass of an abstract class must either implement all of the abstract methods in the
superclass, or be declared abstract itself.
●
Because overridden method resolution happens at the run time, abstract classes can be used
to create object references
●
Let’s take the example of classes Polygon, Rectangle, Triangle
14
final keyword for methods and
classes
●
Recap:
– methods declared final can not be
overridden
– classes declared final can not be inherited
15
The Object Class
●
The slides have been misplaced. Please follow
the book
16