Interface (Java): Difference between revisions

Content deleted Content added
No edit summary
Format code
Line 11:
 
For example:
 
<source lang="Java">
interface Bounceable {
double pi = 3.1415;
void setBounce(); // Note the semicolon
// Interface methods are public, abstract and never final.
// Think of them as prototypes only; no implementations are allowed.
}
</source>
 
An interface:
* declares only method headers and public constants.
* cannot be instantiated.
* can be implemented by a class.
* cannot extend a class.
* can extend several other interfaces.
 
==Usage==
Line 44:
<source lang="java">
public interface Predator {
boolean chasePrey(Prey p);
void eatPrey(Prey p);
}
</source>
Line 60:
public class Lion implements Predator {
 
@Override
public boolean chasePrey(Prey p) {
// programmingProgramming to chase prey p (specifically for a lion)
}
 
@Override
public void eatPrey(Prey p) {
// programmingProgramming to eat prey p (specifically for a lion)
}
}
</source>
Line 75:
Classes can implement multiple interfaces:
<source lang="Java">
public class Frog implements Predator, Prey { ... }
</source>
 
Interfaces can share common class methods:
<source lang="Java">
class Animal implements LikesFood, LikesWater {
{ boolean likes() { return true; }
}
</source>
 
Line 88:
<source lang="Java">
class Animal implements Shares<Boolean>, Shares<Integer> ...
// errorError: repeated interface
</source>
 
Line 96:
Interfaces can extend several other interfaces, using the same formula as described below. For example,
<source lang="java">
public interface VenomousPredator extends Predator, Venomous {
//interface Interface body
}
</source>
is legal and defines a subinterface. Note how it allows multiple inheritance, unlike classes. Note also that <code>Predator</code> and <code>Venomous</code> may possibly define or inherit methods with the same signature, say <code>kill(Prey p)</code>. When a class implements <code>VenomousPredator</code> it will implement both methods simultaneously.