Java 8 support static method or default method or both in the interface


Java 8 support static method or default method or both in the interface



package com.kartik.deflt.intrfce;

public class Client {

 public static void main(String args[]){
  Vehicle c=new Car();
  c.getName();
  System.out.println(c.turnAlarmOn());
  System.out.println(c.turnAlarmOff());
  
  Alarm a=new Car();
  System.out.println(a.turnAlarmOn());
  System.out.println(a.turnAlarmOff());
  int sum=Alarm.sum(10, 20);
  System.out.println(sum);
 }
}



package com.kartik.deflt.intrfce;

public interface Alarm {
 default String turnAlarmOn() {
        return "Turning the alarm on.";
    }
     
    default String turnAlarmOff() {
        return "Turning the alarm off.";
    }
    
    static int sum(int a,int b){
     return a+b;
    }
}




package com.kartik.deflt.intrfce;

public interface Vehicle {

 void getName();
 
 default String turnAlarmOn() {
        return "Turning the alarm on for vehicle.";
    }
     
    default String turnAlarmOff() {
        return "Turning the alarm off for vehicle.";
    }
}
package com.kartik.deflt.intrfce;

public class Car implements Alarm, Vehicle {
 @Override
 public String turnAlarmOn() {
     return Vehicle.super.turnAlarmOn() + " " + Alarm.super.turnAlarmOn();
 }
      
 @Override
 public String turnAlarmOff() {
     return Vehicle.super.turnAlarmOff() + " " + Alarm.super.turnAlarmOff();
 }

 @Override
 public void getName() {
  System.out.println("Kartik");
  
 }
 
}
Kartik
Turning the alarm on for vehicle. Turning the alarm on.
Turning the alarm off for vehicle. Turning the alarm off.
Turning the alarm on for vehicle. Turning the alarm on.
Turning the alarm off for vehicle. Turning the alarm off.
30
When it comes to maintaining backward compatibility with existing code, however, static and default methods are a good trade-off.




Other Links:
java static default method
functional interface
Inheritance Understand Part 3
Robot move
GENERATING KEYSTORE FILES





Previous
Next Post »