Standardmetoder
Abstrakt klasse vs Interface: Interface slår tilbake!
Tidligere kunne metoder med implementasjoner bare eksistere i abstrakte klasser, men fra og med Java 8 dukket de også opp i grensesnitt.
La oss se på syntaksen for å erklære en default-metode:
default dataType methodName(parameters) {
// implementation
}
Vi trenger default-metoder til de samme formålene som vanlige metoder i Java. Vi bruker dem når vi trenger en implementasjon i metoden og når vi ønsker å implementere kun grensesnittet uten ekstra klasser. La oss se på et lite eksempel 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 dette eksemplet inneholder grensesnittet Greeting en standardmetode sayHello() med en standardimplementasjon. Klassen GreetingImpl implementerer dette grensesnittet og overstyrer metoden greet(). I main-metoden opprettes en instans av GreetingImpl, og begge metodene kalles.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 4.76
Standardmetoder
Sveip for å vise menyen
Abstrakt klasse vs Interface: Interface slår tilbake!
Tidligere kunne metoder med implementasjoner bare eksistere i abstrakte klasser, men fra og med Java 8 dukket de også opp i grensesnitt.
La oss se på syntaksen for å erklære en default-metode:
default dataType methodName(parameters) {
// implementation
}
Vi trenger default-metoder til de samme formålene som vanlige metoder i Java. Vi bruker dem når vi trenger en implementasjon i metoden og når vi ønsker å implementere kun grensesnittet uten ekstra klasser. La oss se på et lite eksempel 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 dette eksemplet inneholder grensesnittet Greeting en standardmetode sayHello() med en standardimplementasjon. Klassen GreetingImpl implementerer dette grensesnittet og overstyrer metoden greet(). I main-metoden opprettes en instans av GreetingImpl, og begge metodene kalles.
Takk for tilbakemeldingene dine!