Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

9 abstract interface

432 views

Published on

  • Be the first to comment

9 abstract interface

  1. 1. Object Oriented Design and Programming II Chapter 10 Abstract classes and Interfaces03/25/13 Abstract classes & Interface 1
  2. 2. Software Engineering Principle Minimize change
  3. 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. 4. 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?03/25/13 Abstract classes & Interface 4
  5. 5. Abstract Class A class that cannot instantiate objects. Message Text Voice Fax Message Message Message Public abstract class Message { } Do I and should I use non-abstract methods in abstract classes?03/25/13 Abstract classes & Interface 5
  6. 6. Abstract or not-abstract Contains Contains non- abstract abstract methods methodsClass abstract May contain OK abstract methods. E.g. class abstract methods BJ_abstract_Figure must be in abstract classes GeometricObject in BJ_GeomObj. Situation 3Class non- Not allowed Fine. You areabstract03/25/13 Abstract classes & Interface familiar with this 6
  7. 7. Example BJ_abstract_Figure Problems of Bj_FindArea BJ_abstract_Figure  An abstract class used as supertype  An object cannot be created from an abstract class  An abstract class can be extended by a subclass03/25/13 Abstract classes & Interface 7
  8. 8. 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 subclasses03/25/13 Abstract classes & Interface 8
  9. 9. Example BJ_GeomObj_Circle9 Circle9 extends an abstract class GeometricObject Note the 4 situations in the project:  Circle class has concrete method getArea()  No abstract method getArea(); concrete getArea() in Circle  abstract method getArea(); concrete getArea() in Circle  Instantiate object of abstract class03/25/13 Abstract classes & Interface 9
  10. 10. Empty vs abstract methods Method with empty body  protected abstract double getArea(); Abstract method  protected abstract double getArea();03/25/13 Abstract classes & Interface 10
  11. 11. From abstract class To Interface
  12. 12. 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.03/25/13 Abstract classes & Interface 12
  13. 13. 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.03/25/13 Abstract classes & Interface 13
  14. 14. Multiple Inheritance Class A Class B Class 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.03/25/13 Abstract classes & Interface 14
  15. 15. Defining Interfaces03/25/13 Abstract classes & Interface 15
  16. 16. Interface Declaration public interface StockWatcher{ } public interface Sortable{ }03/25/13 Abstract classes & Interface 16
  17. 17. 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.03/25/13 Abstract classes & Interface 17
  18. 18. 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.03/25/13 Abstract classes & Interface 18
  19. 19. 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 } }} 03/25/13 Abstract classes & Interface 19
  20. 20. Code Review BJ_Interface  Objects inheriting properties of superclass and implementing properties of interface  A class may have only one superclass but may implement multiple interfaces  Using an array of supertype  polymorphism03/25/13 Abstract classes & Interface 20
  21. 21. Sorting It is easy to write a sorting method for numbers of a specific type.  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 It is a challenge to write a method to sort objects How do you do the above in C?03/25/13 Abstract classes & Interface 21
  22. 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. 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:ProgramFilesJava jdk1.5.0_12demoappletsSortDemo  To compare speed
  24. 24. 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/03/25/13 Abstract classes & Interface 24
  25. 25. 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. Examples03/25/13 Abstract classes & Interface 25
  26. 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. 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

×