Метод по умолчанию
Метод по умолчанию - это метод интерфейса, который имеет реализацию
и не требует переопределения в классах, реализующих этот интерфейс.
Такие методы помечаются ключевым словом default.
Они позволяют добавлять новую функциональность в существующие интерфейсы,
не нарушая работу уже написанных классов. Метод по умолчанию можно
переопределить в классе-реализации, если требуется изменить его поведение.
Синтаксис
interface InterfaceName
{
default returnType methodName(parameters)
{
// body of the method
}
}
Пример
Давайте создадим интерфейс Greetable с методом по умолчанию
greet и класс Person, который его реализует:
interface Greetable
{
default void greet()
{
System.out.println("Hello!");
}
}
public class Main
{
public static void main(String[] args)
{
Person person = new Person();
person.greet();
}
}
class Person implements Greetable
{
}
Результат выполнения кода:
"Hello!"
Пример
Давайте переопределим метод по умолчанию в классе Person,
чтобы изменить его поведение:
interface Greetable
{
default void greet()
{
System.out.println("Hello!");
}
}
public class Main
{
public static void main(String[] args)
{
Person person = new Person();
person.greet();
}
}
class Person implements Greetable
{
@Override
public void greet()
{
System.out.println("Hi there!");
}
}
Результат выполнения кода:
"Hi there!"
Пример
Давайте создадим интерфейс с двумя методами по умолчанию
и вызовем оба из класса Main:
interface Calculable
{
default int add(int a, int b)
{
return a + b;
}
default int multiply(int a, int b)
{
return a * b;
}
}
public class Main
{
public static void main(String[] args)
{
Calculator calc = new Calculator();
System.out.println(calc.add(2, 3));
System.out.println(calc.multiply(2, 3));
}
}
class Calculator implements Calculable
{
}
Результат выполнения кода:
5
6
Смотрите также
-
ключевое слово
interface,
которое создает интерфейс -
ключевое слово
implements,
которое реализует интерфейс -
метод
static-interface-method,
который является статическим методом интерфейса -
метод
private-interface-method,
который является приватным методом интерфейса