- An Interface can contain static methods since java8
- These methods contains body
- Can ony be called on the interface (eg: InterfaceName.staticMethodName())
- Cannot be overridden or hidden in implementing class as this only belong to interface
- Allows non static methods to contain body
- An Interface can contain default methods since java 8
- These methods contains body
- Interface doesnt enforce implementing class to override thedefault methods
- Default methods are available to access for class and can be overridden
- Interface with only abstract method
- May contain static and default methods
- Can contain abstract methods that match th method signature in Object
- Annotating with @FunctionalInterface is Optional but when an interface annotated with it cannot have more than 1 abstarct message.
- Used along with lambda