java programming fourth edition - rutgers universityszhou/351/ch11.pdf · 2009-11-17 · java...
TRANSCRIPT
![Page 1: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/1.jpg)
Java Programming Fourth Edition
Chapter 11 Introduction to Inheritance
![Page 2: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/2.jpg)
Java Programming, Fourth Edition 2
Objectives
• Learn about the concept of inheritance • Extend classes • Override superclass methods • Understand how constructors are called during
inheritance
![Page 3: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/3.jpg)
Java Programming, Fourth Edition 3
Objectives (continued)
• Use superclass constructors that require arguments • Access superclass methods • Learn about information hiding • Use methods you cannot override
![Page 4: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/4.jpg)
Java Programming, Fourth Edition 4
Learning About the Concept of Inheritance
• Inheritance – Mechanism that enables one class to inherit
behavior and attributes of another class – Apply knowledge of general category to more
specific objects
![Page 5: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/5.jpg)
Java Programming, Fourth Edition 5
Learning About the Concept of Inheritance (continued)
• Unified Modeling Language (UML) – Consists of many types of diagrams
• Class diagram – Visual tool – Provides overview of a class
![Page 6: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/6.jpg)
Java Programming, Fourth Edition 6
The Employee Class Diagram
![Page 7: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/7.jpg)
Java Programming, Fourth Edition 7
Class Diagram Showing the Relationship Between Employee and
EmployeeWithTerritory
![Page 8: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/8.jpg)
Java Programming, Fourth Edition 8
Learning About the Concept of Inheritance (continued)
• Use inheritance to create derived class – Save time – Reduce errors – Reduce amount of new learning required to use new
class
![Page 9: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/9.jpg)
Java Programming, Fourth Edition 9
Learning About the Concept of Inheritance (continued)
• Base class – Used as a basis for inheritance – Also called:
• Superclass • Parent class
![Page 10: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/10.jpg)
Java Programming, Fourth Edition 10
Learning About the Concept of Inheritance (continued)
• Derived class – Inherits from a base class – Always “is a” case or example of more general base
class – Also called:
• Subclass • Child class
![Page 11: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/11.jpg)
Java Programming, Fourth Edition 11
Extending Classes
• Keyword extends – Achieve inheritance in Java – public class EmployeeWithTerritory extends Employee
• Inheritance one-way proposition – Child inherits from parent, not other way around
• Subclasses more specific • instanceof keyword
![Page 12: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/12.jpg)
Java Programming, Fourth Edition 12
Overriding Superclass Methods
• Create subclass by extending existing class – Subclass contains data and methods defined in
original superclass – Sometimes superclass data fields and methods not
entirely appropriate for subclass objects • Polymorphism
– Using same method name to indicate different implementations
![Page 13: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/13.jpg)
Java Programming, Fourth Edition 13
Overriding Superclass Methods (continued)
• Override method in parent class – Create method in child class that has same name
and argument list as method in parent class • Subtype polymorphism
– Ability of one method name to work appropriately for different subclass objects of same parent class
![Page 14: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/14.jpg)
Java Programming, Fourth Edition 14
Understanding How Constructors Are Called During Inheritance
• Instantiate object that is member of subclass – Call at least two constructors
• Constructor for base class • Constructor for derived class
– Superclass constructor must execute first • When superclass contains default constructor
– Execution of superclass constructor transparent
![Page 15: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/15.jpg)
Java Programming, Fourth Edition 15
Three Classes that Demonstrate Constructor Calling When a Subclass
Object is Instantiated
![Page 16: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/16.jpg)
Java Programming, Fourth Edition 16
Output of the DemoConstructors Application
![Page 17: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/17.jpg)
Java Programming, Fourth Edition 17
Using Superclass Constructors that Require Arguments
• When you write own constructor – Replace automatically supplied version
• When extending superclass with constructors that require arguments – Subclass must provide superclass constructor with
arguments it needs
![Page 18: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/18.jpg)
Java Programming, Fourth Edition 18
Using Superclass Constructors that Require Arguments (continued)
• When superclass has default constructor – Can create subclass with or without own constructor
• When superclass contains only constructors that require arguments – Must include at least one constructor for each
subclass you create – First statement within each constructor must call
superclass constructor
![Page 19: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/19.jpg)
Java Programming, Fourth Edition 19
Using Superclass Constructors that Require Arguments (continued)
• Call superclass constructor – super(list of arguments);
• Keyword super – Always refers to superclass
![Page 20: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/20.jpg)
Java Programming, Fourth Edition 20
Accessing Superclass Methods
• Use overridden superclass method within subclass – Use keyword super to access parent class method
![Page 21: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/21.jpg)
Java Programming, Fourth Edition 21
The PreferredCustomer Class
![Page 22: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/22.jpg)
Java Programming, Fourth Edition 22
Learning About Information Hiding
• Student class – Keyword private precedes each data field – Keyword public precedes each method
• Information hiding – Concept of keeping data private – Data can be altered only by methods you choose
and only in ways that you can control
![Page 23: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/23.jpg)
Java Programming, Fourth Edition 23
The Student Class
![Page 24: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/24.jpg)
Java Programming, Fourth Edition 24
Learning About Information Hiding (continued)
• When class serves as superclass – Subclasses inherit all data and methods of
superclass – Except private members of parent class not
accessible within child class’s methods
![Page 25: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/25.jpg)
Java Programming, Fourth Edition 25
Learning About Information Hiding (continued)
• Keyword protected – Provides intermediate level of security between public and private access
– Can be used within own class or in any classes extended from that class
– Cannot be used by “outside” classes
![Page 26: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/26.jpg)
Java Programming, Fourth Edition 26
Using Methods You Cannot Override
• static methods • final methods • Methods within final classes
![Page 27: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/27.jpg)
Java Programming, Fourth Edition 27
A Subclass Cannot Override static Methods in its Superclass
• Subclass cannot override methods declared static in superclass
• Can hide static method in superclass – By declaring static method with same signature
as static method in superclass – Call new static method from within subclass or in
another class by using subclass object – Within static method of subclass
• Cannot access parent method using super object
![Page 28: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/28.jpg)
Java Programming, Fourth Edition 28
A Subclass Cannot Override static Methods in its Superclass (continued)
• Although child class cannot inherit parent’s static methods – Can access parent’s static methods in the same way
any other class can
![Page 29: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/29.jpg)
Java Programming, Fourth Edition 29
The ProfessionalBaseballPlayer
Class
![Page 30: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/30.jpg)
Java Programming, Fourth Edition 30
A Subclass Cannot Override final Methods in its Superclass
• Subclass cannot override methods declared final in superclass
• final modifier – Doesn’t allow method to be overridden
• Virtual method calls – Default in Java – Method used is determined when program runs – Type of object used might not be known until method
executes
![Page 31: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/31.jpg)
Java Programming, Fourth Edition 31
A Subclass Cannot Override final Methods in its Superclass (continued)
• Advantage to making method final – Compiler knows there is only one version of method – Compiler knows which method version will be used – Can optimize program’s performance
• By removing calls to final methods • Replacing them with expanded code of their
definitions • At each method call location • Called inlining
![Page 32: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/32.jpg)
Java Programming, Fourth Edition 32
A Subclass Cannot Override Methods in a final Superclass
• Declare class final – All of its methods final – Regardless of which access modifier precedes
method name – Cannot be a parent class
![Page 33: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/33.jpg)
Java Programming, Fourth Edition 33
The HideAndGoSeekPlayer and ProfessionalHideAndGoSeekPlayer
Classes
![Page 34: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/34.jpg)
Java Programming, Fourth Edition 34
You Do It
• Creating a superclass and an application to use it • Creating a subclass and an application to use it • Creating a subclass method that overrides a
superclass method • Understanding the role of constructors in
inheritance
![Page 35: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/35.jpg)
Java Programming, Fourth Edition 35
You Do It (continued)
• Understanding inheritance when the superclass requires constructor arguments
• Accessing an overridden superclass method from within a subclass
• Understanding the protected access modifier
![Page 36: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/36.jpg)
Java Programming, Fourth Edition 36
Summary
• Inheritance – Mechanism that enables one class to inherit both
behavior and attributes of another class • Keyword extends
– Achieve inheritance in Java • Polymorphism
– Act of using same method name to indicate different implementations
![Page 37: Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java Programming, Fourth Edition 4 Learning About the Concept of Inheritance • Inheritance](https://reader030.vdocuments.site/reader030/viewer/2022040916/5e8fa1fab311285cbd25939c/html5/thumbnails/37.jpg)
Java Programming, Fourth Edition 37
Summary (continued)
• Use a superclass method within a subclass – Use keyword super to access it
• Information hiding – Concept of keeping data private
• Keyword protected – Intermediate level of security between public and private access
• Subclass cannot override methods – Declared static in superclass – Declared final or class final