Standardmetoder
Abstrakt klass vs Interface: Gränssnittet slår tillbaka!
Tidigare kunde metoder med implementationer endast finnas i abstrakta klasser, men från och med Java 8 dök de även upp i gränssnitt.
Vi tittar på syntaxen för att deklarera en default-metod:
default dataType methodName(parameters) {
// implementation
}
Default-metoder behövs för samma syften som vanliga metoder i Java. De används när en implementation krävs i metoden och när endast gränssnittet ska implementeras utan ytterligare klasser. Nedan följer ett litet exempel med default-metoder:
Main.java
12345678910111213141516171819202122232425package com.example; public class Main { public interface Greeting { default void sayHello() { System.out.println("Hello from the interface!"); } void greet(String name); } public static class GreetingImpl implements Greeting { @Override public void greet(String name) { System.out.println("Hello, " + name + "!"); } } public static void main(String[] args) { GreetingImpl greetingImpl = new GreetingImpl(); greetingImpl.sayHello(); // Output: Hello from the interface! greetingImpl.greet("Alice"); // Output: Hello, Alice! } }
I detta exempel innehåller gränssnittet Greeting en standardmetod sayHello() med en standardimplementering. Klassen GreetingImpl implementerar detta gränssnitt och överskuggar metoden greet(). I main-metoden skapas en instans av GreetingImpl och båda metoderna anropas.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
What is the main difference between abstract classes and interfaces in Java?
Can you provide more examples of default methods in interfaces?
When should I use a default method in an interface instead of an abstract class?
Awesome!
Completion rate improved to 4.76
Standardmetoder
Svep för att visa menyn
Abstrakt klass vs Interface: Gränssnittet slår tillbaka!
Tidigare kunde metoder med implementationer endast finnas i abstrakta klasser, men från och med Java 8 dök de även upp i gränssnitt.
Vi tittar på syntaxen för att deklarera en default-metod:
default dataType methodName(parameters) {
// implementation
}
Default-metoder behövs för samma syften som vanliga metoder i Java. De används när en implementation krävs i metoden och när endast gränssnittet ska implementeras utan ytterligare klasser. Nedan följer ett litet exempel med default-metoder:
Main.java
12345678910111213141516171819202122232425package com.example; public class Main { public interface Greeting { default void sayHello() { System.out.println("Hello from the interface!"); } void greet(String name); } public static class GreetingImpl implements Greeting { @Override public void greet(String name) { System.out.println("Hello, " + name + "!"); } } public static void main(String[] args) { GreetingImpl greetingImpl = new GreetingImpl(); greetingImpl.sayHello(); // Output: Hello from the interface! greetingImpl.greet("Alice"); // Output: Hello, Alice! } }
I detta exempel innehåller gränssnittet Greeting en standardmetod sayHello() med en standardimplementering. Klassen GreetingImpl implementerar detta gränssnitt och överskuggar metoden greet(). I main-metoden skapas en instans av GreetingImpl och båda metoderna anropas.
Tack för dina kommentarer!