Transcript File
Inheritance introduction
is – a relationship & has – a relationship
Super classes and Sub classes
Types of inheritance
Single inheritance
Hierarchical inheritance
Multilevel inheritance
Multiple inheritance
Inheritance
A form of software reuse in which a new class is created by absorbing an
existing class’s members and adding them with new or modified capabilities.
Can save time during program development by basing new classes on
existing proven and debugged high-quality software.
Increases the likelihood that a system will be implemented and maintained
effectively.
When creating a class, rather than declaring completely new members, you can
designate that the new class should inherit the members of an existing class.
Existing class is the superclass
New class is the subclass
Each subclass can be a superclass of future subclasses.
A subclass can add its own fields and methods.
A subclass is more specific than its superclass and represents a more
specialized group of objects.
The subclass exhibits the behaviors of its superclass and can add behaviors that
are specific to the subclass.
The private members of the superclass are private to the superclass.
The subclass can directly access the public members of the superclass.
The subclass can include additional data and method members.
All data members of the superclass are also data members of the
subclass. Similarly, the methods of the superclass (unless overridden) are
also the methods of the subclass.
The is a relationship is expressed with inheritance and has a relationship is expressed
with composition.
For Example:
For Example:
is a --- House is a Building
has a -- House has a bathroom
class Building {
class House
{
Bathroom room = new Bathroom() ;
....
public void getTotMirrors()
{
room.getNoMirrors();
....
}
}
.......
}
class House extends Building {
.........
}
Inheritance Vs Composition
Inheritance is uni-directional. For example House is a Building. But Building is not
a House. Inheritance uses extends key word.
Composition: is used when House has a Bathroom. It is incorrect to say House is
a Bathroom.
Composition simply means using instance variables that refer to other objects.
The class House will have an instance variable, which refers to a Bathroom
object.
Classes can be derived from other classes. The derived class (the class that is
derived from another class) is called a
derived is called the superclass.
subclass.
The class from which its
In fact, in Java, all classes must be derived from some class. Which leads to the
question "Where does it all begin?" The top-most class, the class from
which all other classes are derived, is the Object class defined in java.lang. Object is
the root of a hierarchy of classes.
Example
Figure shows a sample university
community class hierarchy. Also called
an inheritance hierarchy.
Each arrow in the hierarchy
represents an is-a relationship.
Follow the arrows upward in the class
hierarchy
An Employee is a CommunityMember”
“a Teacher is a Faculty member.”
CommunityMember is the direct superclass of Employee, Student and Alumnus
and is an indirect superclass of all the other classes in the diagram.
Starting from the bottom, you can follow the arrows and apply the
relationship up to the topmost superclass.
is-a
Four kinds of inheritance in JAVA. They are.
Single Inheritance (Only one super class).
Multilevel Inheritance (Derived from a derived class).
Hierarichal Inheritance (one Super class, many subclasses).
Multiple Inheritance (Several Super classes).
Pictorial Representation:
When a subclass is derived simply from it's parent class then this mechanism is
known as single inheritance. In case of single inheritance there is only a sub class and
it's parent class. It is also called one level inheritance.
For Example
package yuc.edu.sa;
public class SingleInhertiance
{
int x;
int y;
public void set(int p, int q){
x=p;
y=q;
}
void Show(){
System.out.println(x);
}
}
package yuc.edu.sa;
public class SingleInhertianceApp extends
SingleInhertiance {
public static void main(String[ ] args) {
SingleInhertiance singleInhertiance =
new SingleInhertiance();
singleInhertiance.set(10, 20);
singleInhertiance.Show();
}
}
One Parent class has many sub classes. And this is the concept of Hierarchical
Inheritance.
For Example:
Output:
Derived from a derived class. Such concept is called Multilevel inheritance.
For Example:
Output:
The mechanism of inheriting the features of more than one base class into a
single class is known as multiple inheritance. Java does not support
multiple inheritance but the multiple inheritance can be achieved by using the
interface.