chapter 8 additional inheritance concepts and techniques
Post on 02-Jan-2016
28 Views
Preview:
DESCRIPTION
TRANSCRIPT
Chapter 8 - Additional Inheritance Concepts and Techniques 1
Chapter 8
Additional Inheritance Concepts and Techniques
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
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
Chapter 8 - Additional Inheritance Concepts and Techniques 4
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
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
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
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
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
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
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
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
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
Chapter 8 - Additional Inheritance Concepts and Techniques 14
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
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
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
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
Chapter 8 - Additional Inheritance Concepts and Techniques 19
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
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
Chapter 8 - Additional Inheritance Concepts and Techniques 22
Chapter 8 - Additional Inheritance Concepts and Techniques 23
Chapter 8 - Additional Inheritance Concepts and Techniques 24
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
Chapter 8 - Additional Inheritance Concepts and Techniques 26
Chapter 8 - Additional Inheritance Concepts and Techniques 27
Chapter 8 - Additional Inheritance Concepts and Techniques 28
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)
Chapter 8 - Additional Inheritance Concepts and Techniques 30
top related