ucas
ucas

Reputation: 487

Interface and implemented methods

I have here a question. Based on Java 7 API Collection is an interface, but yet it comes with some concrete methods, such as size(). I don't get it, how is that interface contains implemented methods. It makes sense if that was an abstract class. Best regards

Upvotes: 1

Views: 109

Answers (3)

Ravi K Thapliyal
Ravi K Thapliyal

Reputation: 51711

Collection is an interface, but yet it comes with some concrete methods, such as size().

This is not true. An interface as you already know just defines the contract and leaves the implementation to classes implementing it. If you're referring to something like

Collection<String> collection = new ArrayList<String>();
System.out.println("Size of the collection is: " + collection.size());

Please note that the size() implementation was provided by the ArrayList not Collection.

Upvotes: 2

Vikas V
Vikas V

Reputation: 3186

There is no concrete implementation for any methods. The method you are referring to, size also doesn't have any concrete implementation.

/**
 * Returns the number of elements in this collection.  If this collection
 * contains more than <tt>Integer.MAX_VALUE</tt> elements, returns
 * <tt>Integer.MAX_VALUE</tt>.
 *
 * @return the number of elements in this collection
 */
int size();

Upvotes: 0

Andreas Dolk
Andreas Dolk

Reputation: 114767

java.util.Collection does not have implemented methods, it is an interface. Here's the declaration of the size method:

/**
 * Returns the number of elements in this collection.  If this collection
 * contains more than <tt>Integer.MAX_VALUE</tt> elements, returns
 * <tt>Integer.MAX_VALUE</tt>.
 *
 * @return the number of elements in this collection
 */
int size();

Upvotes: 0

Related Questions