Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java 8 — методы по умолчанию

В Java 8 представлена ​​новая концепция реализации методов по умолчанию в интерфейсах. Эта возможность добавлена ​​для обратной совместимости, чтобы можно было использовать старые интерфейсы для использования возможностей лямбда-выражений Java 8.

Например, интерфейсы «Список» или «Коллекция» не имеют объявления метода «forEach». Таким образом, добавление такого метода просто нарушит реализацию фреймворка коллекции. В Java 8 представлен метод по умолчанию, так что интерфейс List/Collection может иметь реализацию метода forEach по умолчанию, и класс, реализующий эти интерфейсы, не должен реализовывать то же самое.

Синтаксис

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

Несколько значений по умолчанию

С функциями по умолчанию в интерфейсах существует вероятность того, что класс реализует два интерфейса с одинаковыми методами по умолчанию. Следующий код объясняет, как можно разрешить эту двусмысленность.

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

public interface fourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

Первое решение — создать собственный метод, который переопределяет реализацию по умолчанию.

public class car implements vehicle, fourWheeler {

   public void print() {
      System.out.println("I am a four wheeler car vehicle!");
   }
}

Второе решение — вызвать метод по умолчанию указанного интерфейса с помощью super.

public class car implements vehicle, fourWheeler {

   public void print() {
      vehicle.super.print();
   }
}

Статические методы по умолчанию

Интерфейс также может иметь статические вспомогательные методы начиная с Java 8.

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

Пример метода по умолчанию

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
public class Java8Tester {

   public static void main(String args[]) {
      Vehicle vehicle = new Car();
      vehicle.print();
   }
}

interface Vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

interface FourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

class Car implements Vehicle, FourWheeler {

   public void print() {
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("I am a car!");
   }
}

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом -

C:\JAVA>javac Java8Tester.java

Теперь запустите Java8Tester следующим образом:

C:\JAVA>java Java8Tester

Это должно привести к следующему выводу -

I am a vehicle!
I am a four wheeler!
Blowing horn!!!
I am a car!

java

  1. Операторы Java
  2. Java-комментарии
  3. Java для каждого цикла
  4. Java-строки
  5. Абстрактный класс Java и абстрактные методы
  6. Java-интерфейс
  7. Анонимный класс Java
  8. Java-проба с ресурсами
  9. Java-аннотации
  10. Утверждения Java