0% found this document useful (0 votes)
2 views101 pages

Java25 PDF5 Inheritance Polymorphism

Uploaded by

maheshdasara4
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views101 pages

Java25 PDF5 Inheritance Polymorphism

Uploaded by

maheshdasara4
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Core Java - Java 25 Version

PDF 5 : Inheritance and Polymorphism

Chapter 1

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking
Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {
void speed() {
[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {
void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 2

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}
class Child extends Parent {
}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {
[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {
// Accessing parent variable
[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------
Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 3

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 4

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 5

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 6

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 7

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 8

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 9

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 10

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 11

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 12

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 13

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 14

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 15

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 16

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 17

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 18

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
Chapter 19

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {

void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------
Program:
class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.


Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------

-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}
class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------

this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}
class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------

Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example

Chapter 20

Inheritance
-------------

-> Inheritance means acquiring properties from parent class to child class.

Real-time Example:

Father properties inherited by child.

Advantages:
1) Code Reusability
2) Easy Maintenance
3) Less Code Duplication

Syntax:

class Parent {
}

class Child extends Parent {


}

--------------------------------------------------

Single Inheritance
-------------------

One parent and one child class.

Program:

class Animal {
void eat() {

[Link]("Animal Eating");
}
}

class Dog extends Animal {

void bark() {

[Link]("Dog Barking");
}
}

class Demo {

void main() {

// Creating object
var d = new Dog();

// Calling parent method


[Link]();

// Calling child method


[Link]();
}
}

Output:
Animal Eating
Dog Barking

Explanation:

Dog class inherited eat() method from Animal class.

extends keyword used for inheritance.

--------------------------------------------------

Multilevel Inheritance
-----------------------

Program:

class GrandFather {

void land() {

[Link]("Land");
}
}

class Father extends GrandFather {

void house() {

[Link]("House");
}
}

class Son extends Father {

void bike() {

[Link]("Bike");
}
}

class Demo {

void main() {

var s = new Son();

[Link]();
[Link]();
[Link]();
}
}

Output:
Land
House
Bike

Explanation:

Son class can access all parent properties.

--------------------------------------------------

Hierarchical Inheritance
-------------------------

One parent with multiple child classes.

Program:

class RBI {

void rules() {

[Link]("RBI Rules");
}
}

class SBI extends RBI {


}

class HDFC extends RBI {


}

Explanation:

Both SBI and HDFC inherited RBI properties.

--------------------------------------------------

Why Multiple Inheritance not supported?


----------------------------------------

Java does not support multiple inheritance using classes.

Reason:
To avoid ambiguity problem.

--------------------------------------------------

super Keyword
--------------

super keyword refers parent class object.

Program:

class Parent {

int x = 100;
}

class Child extends Parent {

void display() {

// Accessing parent variable


[Link](super.x);
}
}

Output:
100

--------------------------------------------------

Method Overloading
-------------------
-> Same method name with different parameters.

Program:

class Addition {

void add(int a, int b) {

[Link](a + b);
}

void add(int a, int b, int c) {

[Link](a + b + c);
}
}

Explanation:

Same add() method behaves differently.

--------------------------------------------------

Method Overriding
------------------

-> Child class changes parent class method implementation.

Program:

class Vehicle {

void speed() {

[Link]("Normal Speed");
}
}

class Bike extends Vehicle {

@Override
void speed() {

[Link]("High Speed");
}
}

class Demo {

void main() {

var b = new Bike();

[Link]();
}
}

Output:
High Speed

--------------------------------------------------

Difference between Overloading and Overriding


----------------------------------------------

Overloading:
1) Same class
2) Different parameters
3) Compile-time polymorphism

Overriding:
1) Parent and child classes
2) Same parameters
3) Runtime polymorphism

--------------------------------------------------

this Keyword
-------------
this keyword refers current class object.

Program:

class Student {

int sid;

Student(int sid) {

// Current object variable


[Link] = sid;
}

void display() {

[Link](sid);
}
}

Output:
Displays student id.

--------------------------------------------------

Dynamic Method Dispatch


------------------------

Parent reference can hold child object.

Program:

class Animal {

void sound() {
[Link]("Animal Sound");
}
}

class Cat extends Animal {

@Override
void sound() {
[Link]("Cat Meow");
}
}

class Demo {

void main() {

Animal a = new Cat();

[Link]();
}
}

Output:
Cat Meow

Explanation:

Method decided at runtime.

--------------------------------------------------

Interview Questions
--------------------

1) What is inheritance?
2) Why inheritance used?
3) What is polymorphism?
4) Difference between overloading and overriding?
5) Why multiple inheritance not supported?
6) Explain super keyword.
7) Explain this keyword.
8) What is dynamic method dispatch?

--------------------------------------------------
Assignments
-------------

1) Create Animal and Dog classes


2) Write inheritance program
3) Write multilevel inheritance program
4) Write method overloading program
5) Write overriding program
6) Write super keyword example
7) Write this keyword example
End of PDF 5

You might also like