Code

// Basic interfaceinterface Drawable {    void draw(); // Implicitly public abstract        // Default method (Java 8+)    default void resize() {        System.out.println("Resizing...");    }        // Static method (Java 8+)    static void printInfo() {        System.out.println("This is a Drawable interface");    }}// Implementing interfaceclass Circle implements Drawable {    @Override    public void draw() {        System.out.println("Drawing a circle");    }}class Rectangle implements Drawable {    @Override    public void draw() {        System.out.println("Drawing a rectangle");    }        // Override default method (optional)    @Override    public void resize() {        System.out.println("Resizing rectangle specifically");    }}// Multiple interfacesinterface Flyable {    void fly();}interface Swimmable {    void swim();}class Duck implements Drawable, Flyable, Swimmable {    @Override    public void draw() {        System.out.println("Drawing a duck");    }        @Override    public void fly() {        System.out.println("Duck is flying");    }        @Override    public void swim() {        System.out.println("Duck is swimming");    }}// Functional interface@FunctionalInterfaceinterface Calculator {    int calculate(int a, int b);        // Can have default methods    default void print(int result) {        System.out.println("Result: " + result);    }}// UsageDrawable circle = new Circle();circle.draw();circle.resize(); // Uses default implementationDrawable.printInfo(); // Static method call// PolymorphismDrawable[] shapes = {new Circle(), new Rectangle()};for (Drawable shape : shapes) {    shape.draw();}// Functional interface with lambdaCalculator add = (a, b) -> a + b;Calculator multiply = (a, b) -> a * b;int sum = add.calculate(5, 3);int product = multiply.calculate(5, 3);

Comments

No comments yet. Be the first!