![Page 1: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/1.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 1
Chapter 8
Additional Inheritance Concepts and Techniques
![Page 2: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/2.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 2
Chapter 8 Topics
• Require a subclass to override a superclass method by including an abstract method in the superclass
• Creating a Java interface and using an interface to require a class to implement methods
• Creating and using custom exceptions that provide detailed information about an error by extending the Exception class
• How all Java classes implicitly extend the Object class
![Page 3: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/3.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 3
Introducing the Initial Lease Class
• Bradshaw Marina Case Study– Includes three
generalization/specialization hierarchies that require inheritance
• Boat (Sail, Power), Slip (Covered), Lease (Annual, Daily)
– Lease hierarchy• Introduces additional inheritance concepts
– Introduces problem domain classes that contain attributes that hold references to other objects
![Page 4: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/4.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 4
![Page 5: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/5.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 5
Adding an Abstract Method to Lease
• Abstract Method (Figure 8-5)– Method without any statements– Requires that a subclass include or
implement the method– If a class has an abstract method:
• The class must also be abstract
– Keyword• abstract
![Page 6: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/6.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 6
Implementing the AnnualLease Subclass
• AnnualLease Class (Figure 8-6)– Extends Lease class– Adds attributes– Constructors and methods more
complex– Imports java.util package for Date and
Calendar classes• Both subclass and superclass must do this
![Page 7: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/7.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 7
Implementing the DailyLease Subclass
• DailyLease Class (Figure 8-7)– Extends Lease class– Adds attribute– Constructors and methods more
complex– Imports java.util package for Date and
Calendar classes• Both subclass and superclass must do this
![Page 8: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/8.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 8
Testing the AnnualLease and DailyLease Classes
• TesterTwo Class (Figure 8-8)– Tests AnnualLease and DailyLease
classes• Instantiates objects of both classes• Instantiates date objects• Retrieves information about each lease
object
![Page 9: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/9.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 9
Understanding and Using Java Interfaces
• Two methods to require that class override a method:– Add an abstract method to the superclass
that the class derives from– Define an interface that the class
implements• Interface
– Java component that defines abstract methods and constants that must be included by implementing classes
![Page 10: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/10.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 10
Understanding and Using Java Interfaces
• Concept– Knowing how to use something means
knowing how to interface with it– The methods an instance can respond to
can be defined as the interface to the instance
– To assure instance has a defined set of methods:• Define an interface and have class implement it
![Page 11: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/11.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 11
Understanding and Using Java Interfaces
• Component-based development– System components interact using well-
defined interface built from a variety of technologies• If interface is known can be used in
system• Do not need to know technology used or
internal structure of component
![Page 12: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/12.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 12
Understanding and Using Java Interfaces
• Multiple inheritance– Ability to “inherit” from more than one
class– Java allows only single inheritance
• Using extends keyword
– Interfaces allow Java an alternative mechanism to emulate the concept of multiple inheritance
![Page 13: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/13.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 13
Understanding and Using Java Interfaces
• Creating a Java Interface– Created much the same way as a class
• Header– Use interface keyword:
» public interface LeaseInterface
• Abstract methods
– Implement using implements keyword:• public class AnnualLease extends Lease
implements LeaseInterface
![Page 14: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/14.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 14
![Page 15: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/15.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 15
Understanding and Using Java Interfaces
• Implementing More Than One Interface– Java classes can implement more than
one interface• Use comma separated list:
– Interfaces can include static final variables (constants) – Figure 8-11• All classes that implement the interface have
the constants available
– DailyLease in Figure 8-12
![Page 16: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/16.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 16
Understanding and Using Java Interfaces
• Testing the Complete Interface Example– TesterThree class (Figure 8-13)
• Tests:– AnnualLease with one interface– DailyLease with two interfaces
![Page 17: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/17.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 17
Using Custom Exceptions
• Custom exception– Exception written specifically for a
particular application– Extends a built-in class
• Any class that is not declared final can be extended
![Page 18: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/18.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 18
Using Custom Exceptions
• Defining the LeasePaymentException (Fig. 8-15)– Extend custom exception from Exception class– Add appropriate components:
• Attributes• Constructors• Methods
– Sequence diagram• Shows interaction between the
LeasePaymentException class and the AnnualLease class
![Page 19: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/19.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 19
![Page 20: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/20.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 20
Using Custom Exceptions
• Throwing a Custom Exception– AnnualLease class (Figure 8-17)
• Uses LeasePaymentException class– Use throws keyword in method declaration– Use throw keyword in method body
![Page 21: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/21.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 21
Using Custom Exceptions
• Testing the LeasePaymentException – TesterFour class
• Tests:– Revised AnnualLease class– LeasePaymentException class
– Sequence diagram• Shows interactions for TesterFour class
![Page 22: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/22.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 22
![Page 23: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/23.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 23
![Page 24: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/24.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 24
![Page 25: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/25.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 25
Using Custom Exceptions
• Handling Payments as a Batch– Batch processing
• Takes a collection of transactions and processes them one after the other
– If successful:» Success message is displayed
– If unsuccessful:» Exception message is displayed (but
processing continues)
• Useful in testing validation and exceptions
![Page 26: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/26.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 26
![Page 27: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/27.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 27
![Page 28: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/28.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 28
![Page 29: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/29.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 29
Understanding the Object Class and Inheritance
• All Java classes extend from Object class– Object class
• Defines basic functionality that any other class of objects need in Java
– All built-in class hierarchies have Object as common ancestor
– All custom problem domain classes extend Object as well (implicitly)
![Page 30: Chapter 8 Additional Inheritance Concepts and Techniques](https://reader035.vdocuments.site/reader035/viewer/2022062321/56813323550346895d9a0022/html5/thumbnails/30.jpg)
Chapter 8 - Additional Inheritance Concepts and Techniques 30