Download presentation
Presentation is loading. Please wait.
Published byLoren Casey Modified over 9 years ago
1
9/4/2015Abstract classes & Interface1 Object Oriented Design and Programming II Chapter 10 Abstract classes and Interfaces
2
Software Engineering Principle Minimize change
3
From concrete classes To abstract classes To interface Examples: BJ_1_initial_SalCal BJ_2_class_SalCal BJ_3_abstract_SalCal BJ_4_abstract_method_SalCal BJ_5_interface_SalCal
4
9/4/2015Abstract classes & Interface4 abstract and final Methods An abstract method in a superclass has no implementation, and it is to be overridden by a method in its subclass. A final method in a superclass cannot be overridden at its subclass. Why do I need to bother with abstract methods and final methods? Can I live happily in Java without them?
5
9/4/2015Abstract classes & Interface5 Abstract Class A class that cannot instantiate objects. Message Text Message Voice Message Fax Message Public abstract class Message { } Do I and should I use non-abstract methods in abstract classes?
6
9/4/2015Abstract classes & Interface6 Abstract or not-abstract Contains abstract methods Contains non- abstract methods Class abstract May contain abstract methods. abstract methods must be in abstract classes GeometricObject in BJ_GeomObj. Situation 3 OK E.g. class BJ_abstract_Figure Class non- abstract Not allowed Fine. You are familiar with this
7
9/4/2015Abstract classes & Interface7 Example BJ_abstract_Figure Problems of Bj_FindArea BJ_abstract_Figure An abstract class used as supertype An abstract class used as supertype An object cannot be created from an abstract class An object cannot be created from an abstract class An abstract class can be extended by a subclass An abstract class can be extended by a subclass
8
9/4/2015Abstract classes & Interface8 Example BJ_abstract_Figure2 An abstract class used as supertype An object cannot be created from an abstract class An array of the abstract type is used to contain objects of the concrete subclasses
9
9/4/2015Abstract classes & Interface9 Example BJ_GeomObj_Circle9 Circle9 extends an abstract class GeometricObject Note the 4 situations in the project: Circle class has concrete method getArea() Circle class has concrete method getArea() No abstract method getArea(); concrete getArea() in Circle No abstract method getArea(); concrete getArea() in Circle abstract method getArea(); concrete getArea() in Circle abstract method getArea(); concrete getArea() in Circle Instantiate object of abstract class Instantiate object of abstract class
10
9/4/2015Abstract classes & Interface10 Empty vs abstract methods Method with empty body protected abstract double getArea(); protected abstract double getArea(); Abstract method protected abstract double getArea(); protected abstract double getArea();
11
From abstract class To Interface
12
9/4/2015Abstract classes & Interface12 What is Interface An interface is a named collection of method definitions and constants ONLY. An interface defines a protocol of behavior that can be implemented by any class anywhere in the class hierarchy. An interface defines a set of methods but does not implement them. A class that implements the interface agrees to implement all the methods defined in the interface, thereby agreeing to certain behaviors.
13
9/4/2015Abstract classes & Interface13 Interface and Abstract Classes An interface cannot implement any methods, whereas an abstract class can. A class can implement many interfaces but can have only one superclass. An interface is not part of the class hierarchy. Unrelated classes can implement the same interface.
14
9/4/2015Abstract classes & Interface14 Multiple Inheritance Class AClass BClass C Class ABC Class ABC inherits all variables and methods from Class A, Class B, and Class C. Java does NOT support multiple inheritances. However, you can use interface to implement the functionality of multiple inheritance.
15
9/4/2015Abstract classes & Interface15 Defining Interfaces
16
9/4/2015Abstract classes & Interface16 Interface Declaration public interface StockWatcher{ } public interface Sortable{ }
17
9/4/2015Abstract classes & Interface17 Interface Body The interface body contains method declarations for ALL the methods included in the interface. A method declaration within an interface is followed by a semicolon (;) because an interface does not provide implementations for the methods declared within it. All methods declared in an interface are implicitly public and abstract.
18
9/4/2015Abstract classes & Interface18 Implement an Interface An interface defines a protocol of behavior. A class that implements an interface adheres to the protocol defined by that interface. To declare a class that implements an interface, include an implements clause in the class declaration.
19
9/4/2015Abstract classes & Interface19 Implement Interface (Example) public class StockApplet extends Applet implements StockWatcher {... public void valueChanged(String tickerSymbol, double newValue) { if (tickerSymbol.equals(sunTicker)) { // record newValue for sunTicker... } else if (tickerSymbol.equals(oracleTicker)) { // record newValue for oracleTicker } else if (tickerSymbol.equals(ciscoTicker)) { // record newValue for ciscoTicker }
20
9/4/2015Abstract classes & Interface20 Code Review BJ_Interface Objects inheriting properties of superclass and implementing properties of interface Objects inheriting properties of superclass and implementing properties of interface A class may have only one superclass but may implement multiple interfaces A class may have only one superclass but may implement multiple interfaces Using an array of supertype Using an array of supertype polymorphism polymorphism
21
9/4/2015Abstract classes & Interface21 Sorting It is easy to write a sorting method for numbers of a specific type. bubblesort, shellsort, quicksort, heapsort. bubblesort, shellsort, quicksort, heapsort. It is not easy to write a method to sort numbers of any primitive type: short, int, long, float, and double. See Example 9.2 GenericSort.java See Example 9.2 GenericSort.java It is a challenge to write a method to sort objects How do you do the above in C?
22
Example: Comparable interface Java.lang.Comparable See BJ_Max See BJ_GenericSort Still relying on Java 1.5 unboxing feature of wrapper objects
23
Source Code Review and Demo Exercise 1: Download, run, and study BJ_Sort/SortTest.java Each class needs to implement the Sortable interface with a compare() method Exercise 2: Add other sorting methods Bubble, Insertion, Selection Exercise 3: C:\ProgramFiles\Java\ jdk1.5.0_12\demo\applets\SortDemo To compare speed To compare speed
24
9/4/2015Abstract classes & Interface24 Application Programming Interface (API) How do I learn to use the packages in the Java platform? Answer: API http://java.sun.com/j2se/1.5.0/docs/api/
25
9/4/2015Abstract classes & Interface25 API Study example: StringTokenizer 1.Location of the API( package) 2.Class definition 3.Constructor(s) – usually more than one 4.Methods (you can see public only) 5.Variables (any public ones) 6.Interfaces – supply your own methods 7.Exceptions 8.Examples
26
Clone() newObject = someObject; Only assigns the reference of someObject to newObject. No copy is made newObject = someObject.clone(); Copies someObject to a new memory location See BJ_House
27
hashCode() hashCode() returns the object’s hash code Hash code is an integer to store the object in a hash set. If you override the equal() method, you should also override the hashCode See BJ_House
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.