0% found this document useful (0 votes)
6 views

Java Inheritance

Uploaded by

aishorjoshuchi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Java Inheritance

Uploaded by

aishorjoshuchi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Java

Inheritance
Inheritance
• Same inheritance concept of C++ in Java with some
modifications
– One class inherits the other using extends keyword
– The classes involved in inheritance are known as
superclass and subclass
– Multilevel inheritance but no multiple inheritance
– There is a special way to call the superclass’s constructor
– There is automatic dynamic method dispatch
• Inheritance provides code reusability (code of any
class can be used by extending that class)
Prepared By - Rifat Shahriyar 2
Simple Inheritance

Prepared By - Rifat Shahriyar 3


Inheritance and Member Access

• A class member that has been


declared as private will remain
private to its class
• It is not accessible by any code
outside its class, including
subclasses

Prepared By - Rifat Shahriyar 4


Practical Example

Prepared By - Rifat Shahriyar 5


Superclass variable reference to
Subclass object

Prepared By - Rifat Shahriyar 6


Using super to call Superclass
Constructors
super( ) must always be the
first statement executed inside
a subclass’ constructor

Prepared By - Rifat Shahriyar 7


Using super to call Superclass
Constructors

Prepared By - Rifat Shahriyar 8


Using super to access Superclass
hidden members

Prepared By - Rifat Shahriyar 9


Multilevel Inheritance

Inside X's constructor


Inside Y's constructor
Inside Z's constructor

Prepared By - Rifat Shahriyar 10


Method Overriding

Prepared By - Rifat Shahriyar 11


Dynamic Method Dispatch

For practical example please


refer to FindAreas.java

Prepared By - Rifat Shahriyar 12


Abstract Class
• abstract class A
• contains abstract method abstract method f()
• No instance can be created of an abstract class
• The subclass must implement the abstract method
• Otherwise the subclass will be a abstract class too

Prepared By - Rifat Shahriyar 13


Abstract Class

For practical example please


refer to FindAreas2.java

Prepared By - Rifat Shahriyar 14


Anonymous Subclass

Prepared By - Rifat Shahriyar 15


Using final with Inheritance

To prevent overriding

To prevent inheritance

Prepared By - Rifat Shahriyar 16


Local Variable Type Inference and
Inheritance
• A superclass reference can refer to a derived class
object in Java
• When using local variable type inference, the
inferred type of a variable is based on the declared
type of its initializer
– Therefore, if the initializer is of the superclass type, that
will be the inferred type of the variable
– It does not matter if the actual object being referred to by
the initializer is an instance of a derived class

Prepared By - Rifat Shahriyar 17


Local Variable Type Inference and
Inheritance

For detail example please refer to


InheritanceVarDemo.java

The inferred type is determined by the return type of getObject( ),


not by the actual type of the object obtained. Thus, all three
variables will be of type A
Prepared By - Rifat Shahriyar 18
Object Class
• There is one special class, Object, defined by Java
• All other classes are subclasses of Object
• That is, Object is a superclass of all other classes
• This means that a reference variable of type Object
can refer to an object of any other class
• Also, since arrays are implemented as classes, a
variable of type Object can also refer to any array

Prepared By - Rifat Shahriyar 19


Object’s toString()
• The toString( ) method returns a string that contains
a description of the object on which it is called
• Also, this method is automatically called when an
object is output using println()
• Many classes override this method
• Doing so allows them to provide a description
specifically for the types of objects that they create

Prepared By - Rifat Shahriyar 20


Object’s toString()

Prepared By - Rifat Shahriyar 21


Object’s equals() and hashCode()
• == is a reference comparison, whether both
variables refer to the same object
• Object’s equals() method does the same thing
• String class override equals() to check contents
• If you want two different objects of a same class to
be equal then you need to override equals() and
hashCode() methods
– hashCode() needs to return same value to work properly
as keys in Hash data structures

Prepared By - Rifat Shahriyar 22


Object’s equals() and hashCode()

Prepared By - Rifat Shahriyar 23

You might also like