SlideShare a Scribd company logo
Java Programming –
Inheritance
Oum Saokosal
Master’s Degree in information systems,Jeonju
University,South Korea
012 252 752 / 070 252 752
oumsaokosal@gmail.com
Contact Me
• Tel: 012 252 752 / 070 252 752
• Email: oumsaokosal@gmail.com
• FB Page: https://facebook.com/kosalgeek
• PPT: http://www.slideshare.net/oumsaokosal
• YouTube: https://www.youtube.com/user/oumsaokosal
• Twitter: https://twitter.com/okosal
• Web: http://kosalgeek.com
Inheritance
1.What is Inheritance?
2.Why Inheritance?
3.How to use it?
4.Superclass & Subclass
5.Using keyword super
6.Overriding Methods
7.The Object class
3
1.What is Inheritance?
4
1.What is Inheritance? (1)
• OOP has 3 features:
1. Class Encapsulation
2. Inheritance
3. Polymorphism
• OOP allows you to derive (create) new
objects from existing classes. E.g.
• You can create objects from a class:
• Circle cir = new Circle();
• Word w = new Word(“N P I C”);
5
1.What is Inheritance? (2)
•But OOP has other mechanisms.One of
them is called Inheritance.
•Inheritance is a mechanism to make
classes inherit properties/methods from
an existing class.
6
1.What is Inheritance? (3)
• In fact, every class in Java is always
inherited from an existing class, either
explicitly or implicitly.
• In Java,every class is inherited from
java.lang.Object.
To be clear, please look at an
example at next slide.
7
1. What is Inheritance? (4) - Example
1. Please createa blankclass,say, BlankSample
public class BlankSample {
}
2. Then create a test class, say,TestBlank
public class TestBlank {
public static void main(String[] args){
BlankSample bs = new BlankSample();
System.out.print(bs.toString());
}
}
The question iswhy we can call bs.toString()?
If we look at BlankSample,there istoString(). Why? 8
1.What is Inheritance? (5) - IDE
9
1.What is Inheritance? (6)
• Where these methods come from?
They are from java.lang.Object. Because every
class in Java inherits from java.lang.Object.
• To be sure, please look at the API and find out
java.lang.Object. Then see its methods.
• clone(), equals(Object obj),
finalize(), getClass(),
hashCode(), notify(),
notifyAll(), toString() and
wait()
10
2.Why Inheritance?
11
2. Why Inheritance?
•Classes often share capabilities
•We want to avoid re-coding these
capabilities
•Reuse of these would be best to
• Improve maintainability
• Reduce cost
• Improve “real world” modeling
12
2. Why Inheritance? -Benefits
• No need to reinvent the wheel.
• Allows us to build on existing codes without
having to copy it and past it or rewrite it
again, etc.
• To create the subclass, we need to program
only the differencesbetween the superclass
and the subclass that inherits from it.
• Make class more flexible.
13
3. How to use it?
14
3. How to use it? (1)
• In Java, to enable a class inherit an existing class, we have to usea keyword
“extends”. For example, we have Circle class:
public class Circle{
private double radius;
public Circle(){}
public Circle(double radius){
this.radius = radius;
}
public void setRadius(double radius){
this.radius = radius;
}
public double findArea(){
return radius * radius *3.14;
}
}
15
3. How to use it? (2)
• Then we want another class, say, TestCircle, inherits from the Circle
class.
public class TestCircle extends Circle{
public static void main(String[] args){
TestCircle tc1 = new TestCircle();
tc1.setRadius(5.0);
System.out.println(tc1.findArea());
}
}
• Please note that TestCircle didn’t define setRadius() and getArea() methods but it
could use the methods.
• The reason is TestCircle inherits from Circle class.
16
3. How to use it? – Note (1)
• Usually inheritance is used to improve features
of an existing class.
• Please look at the code on page 288, listing 8.1
First Version of the Cylinder class.
• The Circle has alreadythe findArea()
• So the formulato findCylinder’sVolumeis :
volume =Area * length
17
3. How to use it? – Note (2)
public class Cylinder extends Circle {
private double length = 1;
public double getLength(){
return length;
}
public void setLength(double length){
this.length = length;
}
public double findVolume(){
return findArea() * length;
}
} 18
3. How to use it? – Note (3)
public class TestCylinder {
public static void main(String[] args){
Cylinder c1 = new Cylinder();
c1.setRadius(2.5); // from Circle
c1.setLength(5); // from Cylinder
System.out.println(c1.findVolume());
}
}
• Please note that the cylinder’s object, c1, could
call a method, “setLength()”,from
Cylinder class and also could call a method,
“setRadius()”,from Circle class.
19
4. Superclass &
Subclass
20
4. Superclass & Subclass (1)
•The cylinder class inherits features
from circle class.Then,
• Cylinder is subclass
• Circle is superclass
Super inherit Subclass
21
Circle Cylinder
4. Superclass & Subclass (2)
Quick Check:
C1 <- C2 <- C3 <- C4
What are superclass and subclass?
- C1 is thesuperclass of C2,C3, &C4
- C2 are the subclass ofC1 and thesuperclass ofC3 &C4
- C3 are the subclassof C1 &C2 andthe superclass ofC4
- C4 is the subclass ofC1,C2 &C3
• It means if we call the final subclass, e.g. C4,
then we can use features from C1, C2,C3, and, of
course, C4 itself.
22
4. Superclass & Subclass (3) – Java API
• Please checkAPIDocumentation:
Javax.swing.JFrame is the subclassof
Frame,Window,Container,Component,Object.
So if we use JFrame, it meanswe use features from all of
the superclasses.
23
4. Superclass & Subclass (4)
• Sample of using JFrame
import javax.swing.*;
public class TestJFrame extends JFrame {
public static void main(String[] args){
TestJFrame frame = new TestJFrame();
frame.setTitle("Hi I am JFrame");
frame.setSize(400,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
}
} // Note the underline codes 24
5. Using keyword super
25
5. Using keyword super (1)
super is used to call:
1. Constructors of the superclass
2.Methods of the superclass
26
Using keyword super (2)
• To call constructors of the superclass
super(); //call no-arg constructor
super(5.0); //call arg constructor
• Note
super():
1.MUST be written in the 1st line of subclass
constructors
2.Cannot be written in other methods
3.Is the only way to callsuperclassconstructor.
27
Using keyword super (3)
• To call methods of the superclass
super.setRadius(5); // setRadius(5);
super.findArea();
super.toString();
Note:
• This keyword isnot alwaysused to call methodsfrom superclass.
• We can call superclassmethodsby calling directly the methods
name.Please look at slide # 14.
• However, super isused not to confuse with the name of the
overriding methods.
28
6. Overriding Methods
29
Overriding Methods (1)
In the real world:
• Researchers sometimes never invent or
find a new thing. In fact, they just
improve an existing thing.
• To improve the thing, they just:
1. Add new features
2.Modify existing features.
30
Overriding Methods (2)
In OOP:
It is true to the both things above.The
inheritance helps us to do these.We
can:
1. Add new methods to existing class
2. Modify the existing features. It is
called Overriding Methods.
31
Overriding Methods (3)
• Overriding method is a technique to modify a
method in the superclass.
• Overriding method is a method, defined in
subclass, which has the same name and return
type to a method in superclass.
For example:
-The Circle has findArea() but Cylinder
doesn’t has it. If we callfindArea(), it is always
the Circle’s.
- But the cylindercan have findArea() for itself.
This implementationis calledoverridingmethod.
32
Overriding Methods (3)
•Please look at the code on page 292,
Listing 8.2.
33
Important Note (1)
1. In the subclass, we can invoke accessible
things, e.g. public methods or constructor,
from the superclass. E.g.:
- After a classinheritsJFrame, then we can call
setTitle(), setSize(), setVisible() etc.
2.In a constructor of subclass, the non-arg
constructor of the superclass is ALWAYS
invoked.
3.A subclass can NEVER inherit a superclass
which has no non-arg constructor. Let see slide
“Important Note (3)”.
34
Important Note (2)
//Circle class
public class Circle{
private double radius;
public Circle(){ // non-arg constructor
radius = 5;
}
public double findArea(){
return radius * radius * 3.14;
}
}
//TestCircle class
public class TestCircle extends Circle {
public static void main(String[] args){
TestCircle tc = new TestCircle();
System.out.println(tc.findArea());//output: 78.5
}
} 35
Important Note (3)
//Circle class
public class Circle{
private double radius;
//It doesn’t have non-arg constructor Here
public Circle(double radius){
this.radius = radius;
}
public double findArea(){
return radius * radius * 3.14;
}
}
//TestCircle class
public class TestCircle extends Circle {
public static void main(String[] args){
}
}
36
cannot find symbol
symbol: constructor
Circle()
location: class
Circle
1 error
The Object class
37
The Object class (1)
• public boolean equals(Object object)
Indicates whether a object is "equal to" this one.
E.g.:
Circle c1 = new Circle();
if(c1.equals(c1)){
}
Note:We have to override it to test our comparison.
• public int hashCode()
Returns a hash code value for the object. see
“Java Collection Framework.”
38
The Object class (2)
• public String toString()
Return a string that represents the
object. e.g.
Circle c1 = new Circle();
c1.toString();
//output: Circle@24efe3
Note: We have to override it to display
our wise.
39

More Related Content

What's hot (17)

PDF
JVM Mechanics: When Does the JVM JIT & Deoptimize?
Doug Hawkins
 
PPTX
Project of data structure
Umme habiba
 
PPTX
Introduction about Python by JanBask Training
JanBask Training
 
PDF
Snap Lens Tutorial
Mark Billinghurst
 
PPTX
dining philosophers problem using montiors
Warda Chaudhry
 
PDF
Java JOptionPane tutorial - Message, input, and confirm dialogs
Abeer Megahed
 
PDF
Node mailer example how to send email using nodemailer with gmail &amp; mailtrap
Katy Slemon
 
PPT
CS8461 - Design and Analysis of Algorithms
Krishnan MuthuManickam
 
PPTX
File handling in Python
Megha V
 
PDF
Instalar entorno grafico Ubuntu Server
Hermita Bikie Ondo
 
PDF
PLSQL CURSOR
Arun Sial
 
PDF
Web develop in flask
Jim Yeh
 
PDF
Constructors and destructors
Nilesh Dalvi
 
PDF
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
Shengyou Fan
 
PDF
Lazy java
Mario Fusco
 
PPT
Basic Javascript
Bunlong Van
 
DOCX
GUI based calculator using MATLAB
NarayanlalMenariya
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
Doug Hawkins
 
Project of data structure
Umme habiba
 
Introduction about Python by JanBask Training
JanBask Training
 
Snap Lens Tutorial
Mark Billinghurst
 
dining philosophers problem using montiors
Warda Chaudhry
 
Java JOptionPane tutorial - Message, input, and confirm dialogs
Abeer Megahed
 
Node mailer example how to send email using nodemailer with gmail &amp; mailtrap
Katy Slemon
 
CS8461 - Design and Analysis of Algorithms
Krishnan MuthuManickam
 
File handling in Python
Megha V
 
Instalar entorno grafico Ubuntu Server
Hermita Bikie Ondo
 
PLSQL CURSOR
Arun Sial
 
Web develop in flask
Jim Yeh
 
Constructors and destructors
Nilesh Dalvi
 
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
Shengyou Fan
 
Lazy java
Mario Fusco
 
Basic Javascript
Bunlong Van
 
GUI based calculator using MATLAB
NarayanlalMenariya
 

Viewers also liked (20)

PDF
Java OOP Programming language (Part 7) - Swing
OUM SAOKOSAL
 
PDF
Java OOP Programming language (Part 4) - Collection
OUM SAOKOSAL
 
PDF
Javascript & DOM - Part 1- Javascript Tutorial for Beginners with Examples
OUM SAOKOSAL
 
PDF
Java OOP Programming language (Part 8) - Java Database JDBC
OUM SAOKOSAL
 
PDF
Java OOP Programming language (Part 6) - Abstract Class & Interface
OUM SAOKOSAL
 
PPTX
Android app development - Java Programming for Android
OUM SAOKOSAL
 
PPT
Measuring And Defining The Experience Of Immersion In Games
OUM SAOKOSAL
 
PPT
Chapter 7 String
OUM SAOKOSAL
 
PPT
ITS (Intelligent Teleportation System)
OUM SAOKOSAL
 
PPT
Terminology In Telecommunication
OUM SAOKOSAL
 
PPT
Chapter 9 Interface
OUM SAOKOSAL
 
PPTX
Tutorial 1
Bible Tang
 
PPT
Actionscript 3 - Session 7 Other Note
OUM SAOKOSAL
 
PPT
Kimchi Questionnaire
OUM SAOKOSAL
 
PPT
Swing and Graphical User Interface in Java
babak danyal
 
PPT
Chapter 8 Inheritance
OUM SAOKOSAL
 
PPT
Rayleigh Fading Channel In Mobile Digital Communication System
OUM SAOKOSAL
 
PDF
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
Matt Harrison
 
PDF
Meetup Python Nantes - les tests en python
Arthur Lutz
 
PDF
Java OOP Programming language (Part 1) - Introduction to Java
OUM SAOKOSAL
 
Java OOP Programming language (Part 7) - Swing
OUM SAOKOSAL
 
Java OOP Programming language (Part 4) - Collection
OUM SAOKOSAL
 
Javascript & DOM - Part 1- Javascript Tutorial for Beginners with Examples
OUM SAOKOSAL
 
Java OOP Programming language (Part 8) - Java Database JDBC
OUM SAOKOSAL
 
Java OOP Programming language (Part 6) - Abstract Class & Interface
OUM SAOKOSAL
 
Android app development - Java Programming for Android
OUM SAOKOSAL
 
Measuring And Defining The Experience Of Immersion In Games
OUM SAOKOSAL
 
Chapter 7 String
OUM SAOKOSAL
 
ITS (Intelligent Teleportation System)
OUM SAOKOSAL
 
Terminology In Telecommunication
OUM SAOKOSAL
 
Chapter 9 Interface
OUM SAOKOSAL
 
Tutorial 1
Bible Tang
 
Actionscript 3 - Session 7 Other Note
OUM SAOKOSAL
 
Kimchi Questionnaire
OUM SAOKOSAL
 
Swing and Graphical User Interface in Java
babak danyal
 
Chapter 8 Inheritance
OUM SAOKOSAL
 
Rayleigh Fading Channel In Mobile Digital Communication System
OUM SAOKOSAL
 
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
Matt Harrison
 
Meetup Python Nantes - les tests en python
Arthur Lutz
 
Java OOP Programming language (Part 1) - Introduction to Java
OUM SAOKOSAL
 
Ad

Similar to Java OOP Programming language (Part 5) - Inheritance (20)

PPT
Java Programming - Inheritance
Oum Saokosal
 
PDF
Unit 2
Amar Jukuntla
 
PPT
RajLec10.ppt
Rassjb
 
PPTX
Ch5 inheritance
HarshithaAllu
 
PDF
Inheritance and interface
Shubham Sharma
 
DOCX
Class notes(week 6) on inheritance and multiple inheritance
Kuntal Bhowmick
 
PPTX
Chap3 inheritance
raksharao
 
PPTX
inheritance and interface in oops with java .pptx
janetvidyaanancys
 
PDF
Java programming -Object-Oriented Thinking- Inheritance
Jyothishmathi Institute of Technology and Science Karimnagar
 
PPTX
Java Inheritance - sub class constructors - Method overriding
NithyaN19
 
PPT
M251_Meeting 5 (Inheritance and Polymorphism).ppt
smartashammari
 
PDF
Core java complete notes - Contact at +91-814-614-5674
Lokesh Kakkar Mobile No. 814-614-5674
 
PDF
Core java complete notes - PAID call at +91-814-614-5674
WebKrit Infocom
 
PPT
Object and class
mohit tripathi
 
PPT
Inheritance and its necessity in java.ppt
ssuserf170c4
 
PPT
inheritance
Mohit Patodia
 
PPTX
Modules 333333333³3444444444444444444.pptx
radhikacordise
 
PDF
Class notes(week 6) on inheritance and multiple inheritance
Kuntal Bhowmick
 
PPTX
10. inheritance
M H Buddhika Ariyaratne
 
Java Programming - Inheritance
Oum Saokosal
 
RajLec10.ppt
Rassjb
 
Ch5 inheritance
HarshithaAllu
 
Inheritance and interface
Shubham Sharma
 
Class notes(week 6) on inheritance and multiple inheritance
Kuntal Bhowmick
 
Chap3 inheritance
raksharao
 
inheritance and interface in oops with java .pptx
janetvidyaanancys
 
Java programming -Object-Oriented Thinking- Inheritance
Jyothishmathi Institute of Technology and Science Karimnagar
 
Java Inheritance - sub class constructors - Method overriding
NithyaN19
 
M251_Meeting 5 (Inheritance and Polymorphism).ppt
smartashammari
 
Core java complete notes - Contact at +91-814-614-5674
Lokesh Kakkar Mobile No. 814-614-5674
 
Core java complete notes - PAID call at +91-814-614-5674
WebKrit Infocom
 
Object and class
mohit tripathi
 
Inheritance and its necessity in java.ppt
ssuserf170c4
 
inheritance
Mohit Patodia
 
Modules 333333333³3444444444444444444.pptx
radhikacordise
 
Class notes(week 6) on inheritance and multiple inheritance
Kuntal Bhowmick
 
10. inheritance
M H Buddhika Ariyaratne
 
Ad

More from OUM SAOKOSAL (20)

PPTX
Class Diagram | OOP and Design Patterns by Oum Saokosal
OUM SAOKOSAL
 
PDF
Java OOP Programming language (Part 3) - Class and Object
OUM SAOKOSAL
 
PDF
Aggregate rank bringing order to web sites
OUM SAOKOSAL
 
DOC
How to succeed in graduate school
OUM SAOKOSAL
 
PDF
Google
OUM SAOKOSAL
 
PDF
E miner
OUM SAOKOSAL
 
PDF
Data preparation for mining world wide web browsing patterns (1999)
OUM SAOKOSAL
 
PDF
Consumer acceptance of online banking an extension of the technology accepta...
OUM SAOKOSAL
 
DOCX
When Do People Help
OUM SAOKOSAL
 
DOC
Mc Nemar
OUM SAOKOSAL
 
DOCX
Correlation Example
OUM SAOKOSAL
 
DOC
Sem Ski Amos
OUM SAOKOSAL
 
PPT
Sem+Essentials
OUM SAOKOSAL
 
DOC
Path Spss Amos (1)
OUM SAOKOSAL
 
DOC
How To Succeed In Graduate School
OUM SAOKOSAL
 
PPT
Actionscript 3 - Session 4 Core Concept
OUM SAOKOSAL
 
PPT
Actionscript 3 - Session 3 Action Script And Flash
OUM SAOKOSAL
 
PPT
Actionscript 3 - Session 1 Introduction To As 3
OUM SAOKOSAL
 
PPT
Actionscript 3 - Session 5 The Display Api And The Display List
OUM SAOKOSAL
 
PPT
Actionscript 3 - Session 6 Interactivity
OUM SAOKOSAL
 
Class Diagram | OOP and Design Patterns by Oum Saokosal
OUM SAOKOSAL
 
Java OOP Programming language (Part 3) - Class and Object
OUM SAOKOSAL
 
Aggregate rank bringing order to web sites
OUM SAOKOSAL
 
How to succeed in graduate school
OUM SAOKOSAL
 
Google
OUM SAOKOSAL
 
E miner
OUM SAOKOSAL
 
Data preparation for mining world wide web browsing patterns (1999)
OUM SAOKOSAL
 
Consumer acceptance of online banking an extension of the technology accepta...
OUM SAOKOSAL
 
When Do People Help
OUM SAOKOSAL
 
Mc Nemar
OUM SAOKOSAL
 
Correlation Example
OUM SAOKOSAL
 
Sem Ski Amos
OUM SAOKOSAL
 
Sem+Essentials
OUM SAOKOSAL
 
Path Spss Amos (1)
OUM SAOKOSAL
 
How To Succeed In Graduate School
OUM SAOKOSAL
 
Actionscript 3 - Session 4 Core Concept
OUM SAOKOSAL
 
Actionscript 3 - Session 3 Action Script And Flash
OUM SAOKOSAL
 
Actionscript 3 - Session 1 Introduction To As 3
OUM SAOKOSAL
 
Actionscript 3 - Session 5 The Display Api And The Display List
OUM SAOKOSAL
 
Actionscript 3 - Session 6 Interactivity
OUM SAOKOSAL
 

Recently uploaded (20)

PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Python basic programing language for automation
DanialHabibi2
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Python basic programing language for automation
DanialHabibi2
 

Java OOP Programming language (Part 5) - Inheritance

  • 1. Java Programming – Inheritance Oum Saokosal Master’s Degree in information systems,Jeonju University,South Korea 012 252 752 / 070 252 752 [email protected]
  • 2. Contact Me • Tel: 012 252 752 / 070 252 752 • Email: [email protected] • FB Page: https://facebook.com/kosalgeek • PPT: http://www.slideshare.net/oumsaokosal • YouTube: https://www.youtube.com/user/oumsaokosal • Twitter: https://twitter.com/okosal • Web: http://kosalgeek.com
  • 3. Inheritance 1.What is Inheritance? 2.Why Inheritance? 3.How to use it? 4.Superclass & Subclass 5.Using keyword super 6.Overriding Methods 7.The Object class 3
  • 5. 1.What is Inheritance? (1) • OOP has 3 features: 1. Class Encapsulation 2. Inheritance 3. Polymorphism • OOP allows you to derive (create) new objects from existing classes. E.g. • You can create objects from a class: • Circle cir = new Circle(); • Word w = new Word(“N P I C”); 5
  • 6. 1.What is Inheritance? (2) •But OOP has other mechanisms.One of them is called Inheritance. •Inheritance is a mechanism to make classes inherit properties/methods from an existing class. 6
  • 7. 1.What is Inheritance? (3) • In fact, every class in Java is always inherited from an existing class, either explicitly or implicitly. • In Java,every class is inherited from java.lang.Object. To be clear, please look at an example at next slide. 7
  • 8. 1. What is Inheritance? (4) - Example 1. Please createa blankclass,say, BlankSample public class BlankSample { } 2. Then create a test class, say,TestBlank public class TestBlank { public static void main(String[] args){ BlankSample bs = new BlankSample(); System.out.print(bs.toString()); } } The question iswhy we can call bs.toString()? If we look at BlankSample,there istoString(). Why? 8
  • 10. 1.What is Inheritance? (6) • Where these methods come from? They are from java.lang.Object. Because every class in Java inherits from java.lang.Object. • To be sure, please look at the API and find out java.lang.Object. Then see its methods. • clone(), equals(Object obj), finalize(), getClass(), hashCode(), notify(), notifyAll(), toString() and wait() 10
  • 12. 2. Why Inheritance? •Classes often share capabilities •We want to avoid re-coding these capabilities •Reuse of these would be best to • Improve maintainability • Reduce cost • Improve “real world” modeling 12
  • 13. 2. Why Inheritance? -Benefits • No need to reinvent the wheel. • Allows us to build on existing codes without having to copy it and past it or rewrite it again, etc. • To create the subclass, we need to program only the differencesbetween the superclass and the subclass that inherits from it. • Make class more flexible. 13
  • 14. 3. How to use it? 14
  • 15. 3. How to use it? (1) • In Java, to enable a class inherit an existing class, we have to usea keyword “extends”. For example, we have Circle class: public class Circle{ private double radius; public Circle(){} public Circle(double radius){ this.radius = radius; } public void setRadius(double radius){ this.radius = radius; } public double findArea(){ return radius * radius *3.14; } } 15
  • 16. 3. How to use it? (2) • Then we want another class, say, TestCircle, inherits from the Circle class. public class TestCircle extends Circle{ public static void main(String[] args){ TestCircle tc1 = new TestCircle(); tc1.setRadius(5.0); System.out.println(tc1.findArea()); } } • Please note that TestCircle didn’t define setRadius() and getArea() methods but it could use the methods. • The reason is TestCircle inherits from Circle class. 16
  • 17. 3. How to use it? – Note (1) • Usually inheritance is used to improve features of an existing class. • Please look at the code on page 288, listing 8.1 First Version of the Cylinder class. • The Circle has alreadythe findArea() • So the formulato findCylinder’sVolumeis : volume =Area * length 17
  • 18. 3. How to use it? – Note (2) public class Cylinder extends Circle { private double length = 1; public double getLength(){ return length; } public void setLength(double length){ this.length = length; } public double findVolume(){ return findArea() * length; } } 18
  • 19. 3. How to use it? – Note (3) public class TestCylinder { public static void main(String[] args){ Cylinder c1 = new Cylinder(); c1.setRadius(2.5); // from Circle c1.setLength(5); // from Cylinder System.out.println(c1.findVolume()); } } • Please note that the cylinder’s object, c1, could call a method, “setLength()”,from Cylinder class and also could call a method, “setRadius()”,from Circle class. 19
  • 21. 4. Superclass & Subclass (1) •The cylinder class inherits features from circle class.Then, • Cylinder is subclass • Circle is superclass Super inherit Subclass 21 Circle Cylinder
  • 22. 4. Superclass & Subclass (2) Quick Check: C1 <- C2 <- C3 <- C4 What are superclass and subclass? - C1 is thesuperclass of C2,C3, &C4 - C2 are the subclass ofC1 and thesuperclass ofC3 &C4 - C3 are the subclassof C1 &C2 andthe superclass ofC4 - C4 is the subclass ofC1,C2 &C3 • It means if we call the final subclass, e.g. C4, then we can use features from C1, C2,C3, and, of course, C4 itself. 22
  • 23. 4. Superclass & Subclass (3) – Java API • Please checkAPIDocumentation: Javax.swing.JFrame is the subclassof Frame,Window,Container,Component,Object. So if we use JFrame, it meanswe use features from all of the superclasses. 23
  • 24. 4. Superclass & Subclass (4) • Sample of using JFrame import javax.swing.*; public class TestJFrame extends JFrame { public static void main(String[] args){ TestJFrame frame = new TestJFrame(); frame.setTitle("Hi I am JFrame"); frame.setSize(400,300); frame.setVisible(true); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); } } // Note the underline codes 24
  • 25. 5. Using keyword super 25
  • 26. 5. Using keyword super (1) super is used to call: 1. Constructors of the superclass 2.Methods of the superclass 26
  • 27. Using keyword super (2) • To call constructors of the superclass super(); //call no-arg constructor super(5.0); //call arg constructor • Note super(): 1.MUST be written in the 1st line of subclass constructors 2.Cannot be written in other methods 3.Is the only way to callsuperclassconstructor. 27
  • 28. Using keyword super (3) • To call methods of the superclass super.setRadius(5); // setRadius(5); super.findArea(); super.toString(); Note: • This keyword isnot alwaysused to call methodsfrom superclass. • We can call superclassmethodsby calling directly the methods name.Please look at slide # 14. • However, super isused not to confuse with the name of the overriding methods. 28
  • 30. Overriding Methods (1) In the real world: • Researchers sometimes never invent or find a new thing. In fact, they just improve an existing thing. • To improve the thing, they just: 1. Add new features 2.Modify existing features. 30
  • 31. Overriding Methods (2) In OOP: It is true to the both things above.The inheritance helps us to do these.We can: 1. Add new methods to existing class 2. Modify the existing features. It is called Overriding Methods. 31
  • 32. Overriding Methods (3) • Overriding method is a technique to modify a method in the superclass. • Overriding method is a method, defined in subclass, which has the same name and return type to a method in superclass. For example: -The Circle has findArea() but Cylinder doesn’t has it. If we callfindArea(), it is always the Circle’s. - But the cylindercan have findArea() for itself. This implementationis calledoverridingmethod. 32
  • 33. Overriding Methods (3) •Please look at the code on page 292, Listing 8.2. 33
  • 34. Important Note (1) 1. In the subclass, we can invoke accessible things, e.g. public methods or constructor, from the superclass. E.g.: - After a classinheritsJFrame, then we can call setTitle(), setSize(), setVisible() etc. 2.In a constructor of subclass, the non-arg constructor of the superclass is ALWAYS invoked. 3.A subclass can NEVER inherit a superclass which has no non-arg constructor. Let see slide “Important Note (3)”. 34
  • 35. Important Note (2) //Circle class public class Circle{ private double radius; public Circle(){ // non-arg constructor radius = 5; } public double findArea(){ return radius * radius * 3.14; } } //TestCircle class public class TestCircle extends Circle { public static void main(String[] args){ TestCircle tc = new TestCircle(); System.out.println(tc.findArea());//output: 78.5 } } 35
  • 36. Important Note (3) //Circle class public class Circle{ private double radius; //It doesn’t have non-arg constructor Here public Circle(double radius){ this.radius = radius; } public double findArea(){ return radius * radius * 3.14; } } //TestCircle class public class TestCircle extends Circle { public static void main(String[] args){ } } 36 cannot find symbol symbol: constructor Circle() location: class Circle 1 error
  • 38. The Object class (1) • public boolean equals(Object object) Indicates whether a object is "equal to" this one. E.g.: Circle c1 = new Circle(); if(c1.equals(c1)){ } Note:We have to override it to test our comparison. • public int hashCode() Returns a hash code value for the object. see “Java Collection Framework.” 38
  • 39. The Object class (2) • public String toString() Return a string that represents the object. e.g. Circle c1 = new Circle(); c1.toString(); //output: Circle@24efe3 Note: We have to override it to display our wise. 39