<< Chapter < Page | Chapter >> Page > |
An object in Java can often be considered to be of several different types. One of those types is determined by any interfaces implemented by the class fromwhich the object was instantiated. Framework collection objects in Java are instantiated from classes that implement the core interfaces of the CollectionsFramework.
Thus, a Java interface in the Collections Framework specifies the type of such an object, and provides a generic representation of the operations thatapply across different implementations of the interface.
The Collection interface declares several methods. This is not unusual. From a technical standpoint, all interfaces declare none, one, or moremethods. Most interfaces declare multiple methods. (Interfaces can also declare constants, but that is not germane to this discussion.)
In general, there is no technical requirement for a specification of the behavior of the interface methods when implemented in a class. In fact, becausea method that is declared in an interface is abstract, it specifically refrains from defining the behavior of the method. The interface definition simplydeclares the interfaces for all the methods that it declares.
We have now arrived at one of the differences that distinguish the Collections Framework from "just a bunch of interfaces." That difference is contracts .
The Oracle documentation for the Collection interface goes a step beyond the minimum technical requirements for an interface. Thedocumentation describes the general behavior that must be exhibited by each of the methods belonging to an object instantiated from a class that implements the Collection interface. This is sometimes referred to as a contract .
Therefore, if you define a class that implements the Collection interface in a manner consistent with the Collections Framework , it is important that you make certain that each of your methods behaves as described in theOracle documentation. In other words, you must be careful to comply with the contractdefined for those methods. If you don't do that, a user can't rely on objects instantiated from your class to exhibit proper behavior.
For example, the Collection interface declares a method named add that receives an incoming reference of a generic type (see Generics ) and returns a boolean .. Here is some text from the Oracle documentation describing the required behavior (contract) of the add method for any class that implements the Collection interface.
"Ensures that this collection contains the specified element (optional operation). Returns true if this collection changed as a result of the call. (Returns false if this collection does not permit duplicates and already contains the specified element.)
Collections that support this operation may place limitations on what elements may be added to this collection. In particular, some collections will refuse to add null elements, and others will impose restrictions on the type of elements that may be added.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?