© 2006 pearson addison-wesley. all rights reserved9 a-1 chapter 9 advanced java topics (inheritance...
Post on 18-Dec-2015
218 views
TRANSCRIPT
![Page 1: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/1.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-1
Chapter 9
Advanced Java Topics
(inheritance review +
Java generics)
![Page 2: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/2.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-2
Is-a and Has-a Relationships
• Two basic kinds of relationships– Is-a relationship
– Has-a relationship
![Page 3: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/3.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-3
Is-a Relationship
• Inheritance should imply an is-a relationship between the superclass and the subclass
• Example:– If the class Ball is
derived from the class Sphere
• A ball is a sphereFigure 9-5Figure 9-5
A ball “is a” sphere
![Page 4: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/4.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-4
Inheritance Revisited
Figure 9-1Figure 9-1
Inheritance: Relationships among timepieces
![Page 5: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/5.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-5
Inheritance Revisited
• Superclass or base class– A class from which another class is derived
• Subclass, derived class, or descendant class– A class that inherits the members of another class
• Benefits of inheritance– It enables the reuse of existing classes
– It reduces the effort necessary to add features to an existing object
![Page 6: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/6.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-6
Inheritance Revisited
• A subclass – Can add new data members to those it inherits
– Can override an inherited method of its superclass
• A method in a subclass overrides a method in the superclass if the two methods have the same declarations
– (remember: overriding is not the same as overloading)
![Page 7: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/7.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-7
Inheritance Revisited
Figure 9-2Figure 9-2The subclass Ball inherits members of the superclass Sphere and overrides and
adds methods
![Page 8: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/8.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-8
Inheritance Revisited
Figure 9-3Figure 9-3
An object invokes the correct version of a method
![Page 9: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/9.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-9
Dynamic Binding
• A polymorphic method– A method that has multiple meanings
– Created when a subclass overrides a method of the superclass
• Late binding or dynamic binding– The appropriate version of a polymorphic method is
decided at execution time
![Page 10: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/10.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-10
Dynamic Binding
• Controlling whether a subclass can override a superclass method– Field modifier final
• Prevents a method from being overridden by a subclass
– Field modifier abstract• Requires the subclass to override the method
• Early binding or static binding– The appropriate version of a method is decided at
compilation time– Used by methods that are final or static
![Page 11: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/11.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-11
Abstract Classes
• Example– CD player and DVD player
• Both involve an optical disk
• Operations
– Insert, remove, play, record, and stop such discs
![Page 12: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/12.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-12
Abstract Classes
Figure 9-8Figure 9-8
CDP and DVDP have an abstract base class GDP
![Page 13: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/13.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-13
Abstract Classes
• Abstract classes– A class that contains at least one abstract method must
be declared as an abstract class
– A subclass of an abstract class must be declared abstract if it does not provide implementations for all abstract methods in the superclass
![Page 14: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/14.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-14
Interfaces vs. Abstract Classes
• A Java interface– Specifies the common behavior of a set of classes– Contains no implemented methods– Contains no instance data
• Abstract class– Specifies common behaviour AND data of a set of
classes– May implement some methods– May contain instance data
![Page 15: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/15.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-15
Java Interfaces Revisited
• Inheritance can be used to define a subinterface• The Java API provides many interfaces and
subinterfaces– Example: java.util.Iterable
• An iterator is a class that provides access to another class that contains many objects
![Page 16: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/16.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-16
The ADTs List and Sorted List Revisited
• BasicADTInterface– Can be used to organize the commonalities between the
ADT list and the ADT sorted list– ListInterface
• A new interface based on BasicADTInterface
![Page 17: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/17.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-17
Implementations of the ADT Sorted List That Use the ADT List
• A sorted list is a list– With an additional operation, locateIndex
• A sorted list has a list as a member
![Page 18: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/18.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-18
Java Generics: Generic Classes
• ADT developed in this text relied upon the use of Object class
• Problems with this approach– Items of any type could be added to same ADT instance
– ADT instance returns objects• Cast operations are needed
• May lead to class-cast exceptions
• Avoid these issues by using Java generics– To specify a class in terms of a data-type parameter
![Page 19: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/19.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-19
Example – Nodes with a type
public class Node <T>{
private T item;private Node<T> next;
.... contsructors/other method....
public T getIte(){
return item;}
}
![Page 20: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/20.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-20
Generic Wildcards
Generic ? wildcard– Stands for unknown data type
• Examplepublic void printnode(Node<?> temp)
{
System.out.println(temp.getItem());
}
![Page 21: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/21.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-21
Generic Classes and Inheritance
• You can use inheritance with a generic class or interface
• It is sometimes useful to constrain the data-type parameter to a class or one of its subclasses or an implementation of a particular interface– To do so, use the keyword extends
![Page 22: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/22.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-22
Abstract Classes
Figure 9-10Figure 9-10
Sample class hierarchy
![Page 23: © 2006 Pearson Addison-Wesley. All rights reserved9 A-1 Chapter 9 Advanced Java Topics (inheritance review + Java generics)](https://reader030.vdocuments.mx/reader030/viewer/2022032800/56649d235503460f949f9152/html5/thumbnails/23.jpg)
© 2006 Pearson Addison-Wesley. All rights reserved 9 A-23
Generic Methods
• Method declarations can also be generic– Methods can use data-type parameters
• Generic methods are invoked like regular non-generic methods
• Examplepublic static <T extends Comparable<? super T>>void sort(ArrayList<T> list) {
// implementation of sort appears here} // end sort