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

PPT
multiprocessors and multicomputers
PPTX
System software - macro expansion,nested macro calls
PDF
Software Project Proposal- Result Analysis Tool
PPTX
Ch 3 Assembler in System programming
PPT
Ranking Web Pages
PPTX
Shared Memory Multi Processor
PPTX
Direct linking loaders
PPTX
Code Optimization
multiprocessors and multicomputers
System software - macro expansion,nested macro calls
Software Project Proposal- Result Analysis Tool
Ch 3 Assembler in System programming
Ranking Web Pages
Shared Memory Multi Processor
Direct linking loaders
Code Optimization

What's hot (20)

PPTX
Cpu performance matrix
PDF
Cs8591 Computer Networks
PPTX
Linker and Loader
PPTX
parallel language and compiler
PPT
32 dynamic linking nd overlays
PPTX
Dynamic storage allocation techniques in Compiler design
PPT
Process Management-Process Migration
PPTX
AI: Logic in AI 2
PPTX
Interpreted and compiled language
PPTX
Introduction to loaders
PPTX
Operating system 32 logical versus physical address
PPT
Assembler
PPTX
Interactive debugging system
PDF
Language translators
PPTX
Distance Vector Routing
PPT
Multiplayer Online Gaming
PPT
Design issues for the layers
PPT
application-layer.ppt
PPTX
Intermediate code generator
Cpu performance matrix
Cs8591 Computer Networks
Linker and Loader
parallel language and compiler
32 dynamic linking nd overlays
Dynamic storage allocation techniques in Compiler design
Process Management-Process Migration
AI: Logic in AI 2
Interpreted and compiled language
Introduction to loaders
Operating system 32 logical versus physical address
Assembler
Interactive debugging system
Language translators
Distance Vector Routing
Multiplayer Online Gaming
Design issues for the layers
application-layer.ppt
Intermediate code generator
Ad

Viewers also liked (20)

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

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

PPT
Java Programming - Inheritance
PPT
7 inheritance
PDF
Java Reflection
PPT
Lec8_Java Advanced class features_Part 1V.ppt
PPT
Java Basics
PPTX
PROGRAMMING IN JAVA
PPT
Java basic
PPT
Java basic tutorial
PPTX
04 Java Language And OOP Part IV
PPTX
CORE JAVA PPT FOR ENGINEERS BBBBBBBBBBBBBBBBBBB
PPT
java02.pptsatrrhfhf https://www.slideshare.net/slideshow/java-notespdf-259708...
PPT
Java Basics
 
PDF
ádfasdfasdfasdfasdfasdfsadfsadfasdfasfasdfasdfasdfa
PPTX
Pi j2.3 objects
PPTX
Ch5 inheritance
PPT
04inherit
PPT
Java Programming - Polymorphism
PDF
03_chapter_inheritance for java OOP Design
PPT
Lesson12 other behavioural patterns
PPTX
Object-Oriented Programming with C#
Java Programming - Inheritance
7 inheritance
Java Reflection
Lec8_Java Advanced class features_Part 1V.ppt
Java Basics
PROGRAMMING IN JAVA
Java basic
Java basic tutorial
04 Java Language And OOP Part IV
CORE JAVA PPT FOR ENGINEERS BBBBBBBBBBBBBBBBBBB
java02.pptsatrrhfhf https://www.slideshare.net/slideshow/java-notespdf-259708...
Java Basics
 
ádfasdfasdfasdfasdfasdfsadfsadfasdfasfasdfasdfasdfa
Pi j2.3 objects
Ch5 inheritance
04inherit
Java Programming - Polymorphism
03_chapter_inheritance for java OOP Design
Lesson12 other behavioural patterns
Object-Oriented Programming with C#

More from OUM SAOKOSAL (20)

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

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Machine learning based COVID-19 study performance prediction
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
MYSQL Presentation for SQL database connectivity
sap open course for s4hana steps from ECC to s4
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Reach Out and Touch Someone: Haptics and Empathic Computing
Diabetes mellitus diagnosis method based random forest with bat algorithm
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
MIND Revenue Release Quarter 2 2025 Press Release
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Machine learning based COVID-19 study performance prediction
Spectral efficient network and resource selection model in 5G networks
Encapsulation_ Review paper, used for researhc scholars
The Rise and Fall of 3GPP – Time for a Sabbatical?
The AUB Centre for AI in Media Proposal.docx
20250228 LYD VKU AI Blended-Learning.pptx
MYSQL Presentation for SQL database connectivity

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