Download presentation
Presentation is loading. Please wait.
Published byBerniece Richardson Modified over 9 years ago
1
Chapter 7 - Generalization/Specialization and Inheritance1 Chapter 7 Generalization/Specialization and Inheritance
2
Chapter 7 - Generalization/Specialization and Inheritance2 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
Chapter 7 - Generalization/Specialization and Inheritance3 Implementing the Boat Generalization/Specialization 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
Chapter 7 - Generalization/Specialization and Inheritance4
5
5 Implementing the Boat Generalization/Specialization 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
Chapter 7 - Generalization/Specialization and Inheritance6
7
7 Implementing the Boat Generalization/Specialization 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
Chapter 7 - Generalization/Specialization and Inheritance8 Implementing the Boat Generalization/Specialization 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
Chapter 7 - Generalization/Specialization and Inheritance9
10
10 Implementing the Boat Generalization/Specialization 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
Chapter 7 - Generalization/Specialization and Inheritance11 Implementing the Boat Generalization/Specialization 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
Chapter 7 - Generalization/Specialization and Inheritance12
13
Chapter 7 - Generalization/Specialization and Inheritance13 Implementing the Boat Generalization/Specialization 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
Chapter 7 - Generalization/Specialization and Inheritance14
15
Chapter 7 - Generalization/Specialization and Inheritance15 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
Chapter 7 - Generalization/Specialization and Inheritance16 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
Chapter 7 - Generalization/Specialization and Inheritance17 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
Chapter 7 - Generalization/Specialization and Inheritance18 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
Chapter 7 - Generalization/Specialization and Inheritance19 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
Chapter 7 - Generalization/Specialization and Inheritance20 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
Chapter 7 - Generalization/Specialization and Inheritance21
22
Chapter 7 - Generalization/Specialization and Inheritance22 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
Chapter 7 - Generalization/Specialization and Inheritance23 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
Chapter 7 - Generalization/Specialization and Inheritance24 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
Chapter 7 - Generalization/Specialization and Inheritance25 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.