Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java...

37
Java Programming Fourth Edition Chapter 11 Introduction to Inheritance

Transcript of Java Programming Fourth Edition - Rutgers Universityszhou/351/ch11.pdf · 2009-11-17 · Java...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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