// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void run(); // interface method (does not have a body)
}
An interface can contain:
public constants;
abstract methods without an implementation (the keyword abstract is not required here);
default methods with implementation (the keyword default is required);
static methods with implementation (the keyword static is required);
private methods with implementation.
Java 9 onwards, you can include private methods in interfaces. Before Java 9
it was not possible.
An interface can't contain fields (only constants), constructors,
or non-public abstract methods.
The keyword abstract before a method means that the method does not have a
body, it just declares a signature.
// Assume we have the simple interface:
interface Appendable {
void append(string content);
}
// We can implement it like that:
class SimplePrinter implements Appendable {
public void append(string content) {
System.out.println(content);
}
}
// ... and maybe like that:
class FileWriter implements Appendable {
public void append(string content) {
// Appends content into a file
}
}
// Both classes are Appendable.
0
how to implement a interface in java
the main idea of an interface is declaring functionality.
Suppose you program a game that has several types of characters.
These characters are able to move within a map. That is represented by Movable
interface
interface Interface {
int INT_CONSTANT = 0; // it's a constant, the same as public static final int INT_FIELD = 0
void instanceMethod1();
void instanceMethod2();
static void staticMethod() {
System.out.println("Interface: static method");
}
default void defaultMethod() {
System.out.println("Interface: default method. It can be overridden");
}
private void privateMethod() {
System.out.println("Interface: private methods in interfaces are acceptable but should have a body");
}
}
Static, default, and private methods should have an implementation in the interface!
In many cases, it is more important to know what an object can do,instead of
how it does what it does. This is a reason why interfaces are commonly used for
declaring a type of variable.
interface : DrawingTool : a tool can draw
interface DrawingTool {
void draw(Curve curve);
}
DrawingTool pencil = new Pencil();
DrawingTool brush = new Brush();
Both Pencil and brush class should implement draw method