Latest web development tutorials

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

Java 8 новых функций Java 8 новых функций


Java 8 новых методов интерфейса по умолчанию.

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

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

Зачем эта функция?

Во-первых, перед интерфейсом является обоюдоострым мечом, в пользу абстрактной, а не для конкретного программирования недостаток это то, что, когда вам нужно изменить интерфейс, нужно изменить весь класс, который реализует интерфейс, текущая Java Collections Framework 8, прежде чем не метод Еогеасп, как правило, думают о решениях в JDK добавить новые методы и реализации к соответствующему интерфейсу. Тем не менее, версия была выпущена, она не в то же самое время, добавляя новые методы к интерфейсу не влияет на существующие реализации. Таким образом, внедрение метода по умолчанию. Их цель состоит в том, чтобы решить существующие модификации и реализация интерфейса не совместима с этой проблемой.

грамматика

Синтаксис метод по умолчанию выглядит следующим образом:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

Множественный метод по умолчанию

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

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

public interface fourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}

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

public class car implements vehicle, fourWheeler {
   default void print(){
      System.out.println("我是一辆四轮汽车!");
   }
}

Второе решение можно использовать супер вызвать метод по умолчанию указанный интерфейс:

public class car implements vehicle, fourWheeler {
   default void print(){
      vehicle.super.print();
   }
}

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

Java 8 Еще одной особенностью является интерфейс может объявить (и может обеспечить реализацию) статический метод. Например:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
	// 静态方法
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}

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

Мы можем использовать следующий код, чтобы узнать о методе по умолчанию, вы можете поместить файл код 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("我是一辆车!");
   }
	
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}

interface FourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}

class Car implements Vehicle, FourWheeler {
   public void print(){
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("我是一辆汽车!");
   }
}

Реализация выше сценария выход:

$ javac Java8Tester.java 
$ java Java8Tester
我是一辆车!
我是一辆四轮车!
按喇叭!!!
我是一辆汽车!

Java 8 новых функций Java 8 новых функций