Chapter 7 Generalization/Specialization and Inheritance - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Chapter 7 Generalization/Specialization and Inheritance

Description:

... by subclass Implementing the Boat Generalization/Specialization Hierarchy Using the Extends Keyword to Create the Sailboat Subclass Keywords: ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 26
Provided by: RicHeish1
Category:

less

Transcript and Presenter's Notes

Title: Chapter 7 Generalization/Specialization and Inheritance


1
Chapter 7Generalization/Specialization and
Inheritance
2
Chapter 7 Topics
  • Creating generalization/specialization
    hierarchies using the extends keyword to
    implement inheritance with problem domain classes
  • Invoking superclass constructors when writing a
    subclass constructor
  • Using the abstract and final keywords with Java
    superclasses
  • Overriding superclass methods in subclasses
  • How polymorphism works with Java subclasses
  • The implications of protected and private access
    in superclasses

3
Implementing the Boat Generalization/Specializatio
n Hierarchy
  • Boat Class (See Figure 7-2)
  • Includes
  • 4 attributes
  • Constructor ? invokes 4 accessor (setter) methods
  • 8 standard accessor methods
  • 4 setters
  • 4 getters

4
(No Transcript)
5
Implementing the Boat Generalization/Specializatio
n Hierarchy
  • Testing the Boat Superclass
  • TesterOne tester program (Figure 7-3)
  • Creates three boat instances
  • Retrieves information about each instance
  • Sequence diagram (Figure 7-5)
  • Shows how TesterOne interacts with the Boat class
  • Boat is ready to use as a superclass

6
(No Transcript)
7
Implementing the Boat Generalization/Specializatio
n Hierarchy
  • Using the Extends Keyword to Create the Sailboat
    Subclass
  • Generalization/specialization hierarchy
  • General superclass includes attributes and
    methods that are shared by specialized subclasses
  • Instances of subclass inherit the attributes and
    methods of the superclass
  • Include additional attributes and methods defined
    by subclass

8
Implementing the Boat Generalization/Specializatio
n Hierarchy
  • Using the Extends Keyword to Create the Sailboat
    Subclass
  • Keywords
  • Use extends keyword to implement inheritance
  • public class Sailboat extends Boat
  • Use super keyword to invoke superclass
    constructor
  • super(aStateRegNo, aLength, aManufacturer, aYear)

9
(No Transcript)
10
Implementing the Boat Generalization/Specializatio
n Hierarchy
  • Using the Extends Keyword to Create the Sailboat
    Subclass
  • To use inheritance
  • Need to know constructor and method signatures
    (APIs)
  • Do not need
  • Access to source code
  • Knowledge of how class is written

11
Implementing the Boat Generalization/Specializatio
n Hierarchy
  • Testing the Sailboat Subclass
  • TesterTwoA tester program (Figure 7-8)
  • Creates 3 Sailboat instances and populates them
  • Can use any methods defined in super or sub class
  • Sequence diagram (Figure 7-10)
  • Shows how TesterTwoA interacts with the Sailboat
    class

12
(No Transcript)
13
Implementing the Boat Generalization/Specializatio
n Hierarchy
  • Adding a Second Subclass Powerboat
  • Powerboat Class (Figure 7-11)
  • Second class can be extended from Boat without
    effecting any other classes derived from Boat
  • TesterTwoB tester program (Figure 7-12)
  • Creates instances of both subclass and populates
    them
  • Sequence diagram (Figure 7-14)
  • Shows how TesterTwoB interacts with the Sailboat
    and Powerboat classes

14
(No Transcript)
15
Understanding Abstract and Final Classes
  • Using Abstract Classes
  • Concrete class
  • Class that can be instantiated
  • Abstract class
  • Class not intended to be instantiated
  • Used only to extend into subclasses
  • Facilitates reuse
  • Keyword
  • abstract
  • Used in class header to declare an abstract class
  • e.g., public abstract class Boat

16
Understanding Abstract and Final Classes
  • Using Final Classes
  • Final class
  • Class not intended to be extended
  • Improves performance ? JVM does not have to
    search for subclass methods that might override
    superclass methods
  • Implements security by restricting class
    extension
  • Keyword
  • final
  • Used in class header to declare a final class
  • e.g. public final class Boat

17
Overriding a Superclass Method
  • Method Overriding
  • Occurs when method in subclass is invoked instead
    of method in superclass
  • Both methods have the same signature
  • Allows subclass to modify the behavior of the
    superclass
  • Compare overriding with overloading

18
Overriding a Superclass Method
  • Adding Overriding tellAboutSelf Method
  • Use same tellAboutSelf method signature in
    subclass
  • Implement new functionality in overridden method
    definition
  • Can invoke methods from super or sub class
  • Compare tellAboutSelf() in Figures 7-15, 7-16

19
Overriding a Superclass Method
  • Overriding Invoking a Superclass Method
  • Two basic ways to override a superclass method
  • Override completely Saleboat 7-16
  • Redefine what the method does
  • Override and append Powerboat 7-19
  • Override method
  • Call super to execute superclass method
  • Add additional functionality to overridden method

20
Overriding a Superclass Method
  • Testing Two Method-Overriding Approaches
  • TesterThreeB tester program (Figure 7-20)
  • Creates instances of both subclass, populates
    them, and demonstrates method overriding
  • Sequence diagram
  • Shows how TesterThreeB interacts with the
    Sailboat and Powerboat classes

21
(No Transcript)
22
Overriding a Superclass Method
  • Overriding, Polymorphism, and Dynamic Binding
  • Polymorphism
  • Objects of different classes can respond to the
    same message in their own way
  • Simplifies processing
  • Responsibility of responding appropriately is
    left to the particular instance
  • Method overriding
  • Form of polymorphism

23
Overriding a Superclass Method
  • Overriding, Polymorphism, and Dynamic Binding
  • Dynamic Binding
  • Resolves which method to invoke at runtime if
    overridden methods exist
  • Provides flexibility when adding new subclasses
    to a system

24
Understanding Private Versus Protected Access
  • Private access
  • No other object can directly read or modify the
    value of an attribute
  • Must use accessor methods
  • Also limits ability of subclass to directly
    access private variables of superclass
  • Must use accessor methods

25
Understanding Private Versus Protected Access
  • Protected access
  • Subclass has direct access to protected variables
    of superclass pp. 236
  • Other classes in same package have direct access
    as well
  • Can also use with methods
  • Use with care
  • Avoid use of public keyword with attributes
  • Violates encapsulation and information hiding
Write a Comment
User Comments (0)
About PowerShow.com