0% found this document useful (0 votes)
4 views16 pages

Java Inheritance

The document provides an overview of inheritance in Java, detailing access modifiers and types of inheritance such as simple, multilevel, and multiple inheritance. It explains the differences in inheritance support between Java and other object-oriented languages, along with examples demonstrating inheritance and access privileges. Key concepts include the roles of base and child classes, and how access modifiers affect inherited members in Java.
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)
4 views16 pages

Java Inheritance

The document provides an overview of inheritance in Java, detailing access modifiers and types of inheritance such as simple, multilevel, and multiple inheritance. It explains the differences in inheritance support between Java and other object-oriented languages, along with examples demonstrating inheritance and access privileges. Key concepts include the roles of base and child classes, and how access modifiers affect inherited members in Java.
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
You are on page 1/ 16

St.

Thomas’ College of Engineering & Technology

JAVA
LECTURE : INHERITANCE

A. K. SIROMONI
( AIML )
INHERITANCE

Access Modifiers :
C++ : PRIVATE , PROTECTED, PUBLIC, ( If not specified , modifier is PRIVATE )

JAVA : PRIVATE , PROTECTED, PUBLIC, DEFAULT ( If not specified , modifier is DEFAULT )

KEY WORDS :

INHERITANCE, BASE CLASS, CHILD CLASS, SIMPLE INHERITANCE, MULTIPLE


INHERITANCE, HIERARCHICAL OR MULTILEVEL INHERITANCE, HYBRID OR
MULTI LEVEL MULTIPLE INHERITANCE

A.K.SIROMONI-STCET-CSE(AIML) 2
INHERITANCE

INHERITANCE : IS THE PROPERTY OF OBJECT ORIENTATION BY WHICH A


CLASS ( CALLED SUB CLASS OR CHILD CLASS ) GETS CHARACTERISTICS AND
FUNCTIONALITY FROM ANOTHER CLASS ( CALLED SUPER CLASS OR PARENT
CLASS )

INHERITANCE IS SUPPORTED BY ALL OBJECT ORIENTED LANGUAGES LIKE


JAVA, C++, C#, PYTHON, PERL , EIFFEL etc.

ALL OBJECT ORIENTED LANGUAGES SUPPORT MULTILEVEL


INHERITANCE BUT MULTIPLE INHERITANCE IS NOT SUPPORTED BY ALL
OBJECT ORIENTED LANGUAGES LIKE JAVA, ,C#, EIFFEL etc.

A.K.SIROMONI-STCET-CSE(AIML) 3
INHERITANCE
PACKAGE : A java package is a group of classes (preferably similar types),
interfaces and sub-packages.

CHILD CLASS and BASE CLASS : The class which inherits the properties of
other class/classes is known as child class (derived class, sub class) and the class
/ classes whose properties are inherited is known as parent class (base class,
super class).

TYPES OF INHERITANCE

A) SIMPLE INHERITANCE : SUPPORTED BY ALL OBJECT ORIENTED LANGUAGE

BASE CLASS

CHILD CLASS

A.K.SIROMONI-STCET-CSE(AIML) 4
INHERITANCE
TYPES OF INHERITANCE
B) MULTILEVEL INHERITANCE : SUPPORTED BY JAVA, C++

CLASS A

CLASS B

CLASS C

A.K.SIROMONI-STCET-CSE(AIML) 5
TYPES OF INHERITANCE
B) MULTIPLE INHERITANCE : SUPPORTED BY C++ NOT BY JAVA

CLASS B CLASS C

CLASS A

HOWEVER IN JAVA , MULTIPLE INHERITANCE MAY ACHIEVED THROUGH INTERFACES

CLASS B INTERFACE C

CLASS A

A.K.SIROMONI-STCET-CSE(AIML) 6
TYPES OF INHERITANCE
B) MULTIPLE INHERITANCE : SUPPORTED BY JAVA THROUGH INTERFACES

HOWEVER IN JAVA , MULTIPLE INHERITANCE MAY ACHIEVED THROUGH INTERFACES

INTERFACE C INTERFACE B INTERFACE C

CLASS A

INTERFACE D INTERFACE C INTERFACE E

CLASS A CLASS B
A.K.SIROMONI-STCET-CSE(AIML) 7
TYPES OF INHERITANCE
C) MULTILEVEL MULTIPLE INHERITANCE : SUPPORTED BY C++ NOT BY JAVA

CLASS A

CLASS B CLASS C

CLASS D

A.K.SIROMONI-STCET-CSE(AIML) 8
SCOPE OF ACCESS MODIFIER THROUGH INHERITANCE

C++
PUBLIC INHERITANCE : ACCESS MODIFIERS REMAINS SAME IN CHILD CLASS

PRIVATE INHERITANCE : ACCESS MODIFIERS BECOMES PRIVATE IN CHILD CLASS


PROTECTED INHERITANCE : ACCESS MODIFIERS BECOMES PROTECTED IN CHILD CLASS

JAVA

SCOPE OF ACCESS MODIFIERS IN JAVA

Access Within class Within Outside package by Outside


Modifier package subclass only package

Private Y N N N

Default Y Y N N

Protected Y Y Y N

Public Y Y Y Y

A.K.SIROMONI-STCET-CSE(AIML) 9
EXAMPLE 1 - FILE NAME (inherit1.java)

//inheritance in java
import java.io.*;

class base { base


(){System.out.println("base");} }
class child extends base {
child(){System.out.println("child");} }

public class inherit1{


public static void main(String [] args)
{base b = new base();
child c = new child();} }

OUTPUT : base
base
child

A.K.SIROMONI-STCET-CSE(AIML) 10
EXAMPLE 2 - FILE NAME (inherit2.java)
//inheritance in java public
import java.io.*;

class base { base (){ System.out.println("base");}


public void show(){System.out.println("Show from base");} }
class child extends base { child(){System.out.println("child");}
public void show1(){System.out.println("Show from child");} }

public class inherit2{


public static void main(String [] args)
{base b = new base(); b.show();
child c = new child(); c.show();
c.show1(); } }

OUTPUT - base
Show from base
base
child
Show from base
Show from child
A.K.SIROMONI-STCET-CSE(AIML) 11
EXAMPLE 3 - FILE NAME (inherit3.java)
//inheritance in java protected
import java.io.*;

class base { base (){ System.out.println("base");}


protected void show(){System.out.println("Show from base");} }
class child extends base { child(){System.out.println("child");}
public void show1(){System.out.println("Show from child");} }

public class inherit3{


public static void main(String [] args)
{base b = new base();
b.show(); // cannot call from classes of other packages which have inherited base
child c = new child(); c.show();
c.show1();} }
OUTPUT - base
Show from base
base
child
Show from base
Show from child
A.K.SIROMONI-STCET-CSE(AIML) 12
EXAMPLE 4 - FILE NAME (inherit4.java)
//inheritance in java protected
import java.io.*;

class base { base (){System.out.println("base");}


protected void show(){System.out.println("Show from base");} }
class child extends base { child(){System.out.println("child");}
// calling inherited show function in show1
public void show1(){show();System.out.println("Show from child");} }

public class inherit4 { public static void main(String [] args)


{base b = new base(); b.show();
child c = new child(); c.show();
c.show1();} }
OUTPUT - base
Show from base
base
child
Show from base
Show from base
Show from child
A.K.SIROMONI-STCET-CSE(AIML) 13
ACCESS PRIVILEGES OF INHERITANCE IN JAVA

• INHERITED PUBLIC MEMBERS FROM THE BASE WILL BE PUBLIC , CAN NOT BE
PRIVATE OR PROTECTED

• INHERITED PROTECED MEMBERS FROM THE BASE WILL BE PROTECTED , CAN


NOT BE PRIVATE BUT MAY BE PUBLIC

• PRIVATE MEMBERS CAN NOT BE INHERITED

• INHERITED DEFAULT MEMBERS FROM THE BASE WILL BE PUBLIC OR PROTECTED


IN SAME PACKAGE , CAN NOT BE PRIVATE

A.K.SIROMONI-STCET-CSE(AIML) 14
EXAMPLE 4a - FILE NAME (inherits.java)

/* inheritance in java public member show in base changed to protected in child class,
ERROR */
import java.io.*;

class base { base (){System.out.println("base");}


public void show(){System.out.println("Show from base");} }
class child extends base { child(){System.out.println("child");}
protected void show(){System.out.println("Show from child");} }

public class inherits{


public static void main(String [] args)
{base b = new base(); b.show();
child c = new child(); c.show(); } }

OUTPUT – attempting to assign weaker privileges , was public

A.K.SIROMONI-STCET-CSE(AIML) 15
EXAMPLE 6 - FILE NAME (inherit6.java)

//inheritance and overloading


import java.io.*;

class base { base (int i){System.out.println("base "+i);}


protected void show(){System.out.println("Show from base");} }
class child extends base { child(int k){super(k+1);System.out.println("child "+k);}
// show function is overriden
public void show(){super.show();System.out.println("Show from child");} }

public class inherit6{ public static void main(String [] args)


{base b = new base(10); b.show();
child c = new child(11); c.show(); } }

OUTPUT - base 10
Show from base
base 12
child 11
Show from base
Show from child

A.K.SIROMONI-STCET-CSE(AIML) 16

You might also like