Standardmetoder
Abstrakt klasse vs Interface: Interfacet slår igen!
Tidligere kunne metoder med implementeringer kun eksistere i abstrakte klasser, men fra og med Java 8 findes de også i interfaces.
Lad os se på syntaksen for at erklære en default-metode:
default dataType methodName(parameters) {
// implementation
}
Vi har brug for default-metoder til de samme formål som almindelige metoder i Java. Vi bruger dem, når vi har brug for en implementering i metoden, og når vi kun ønsker at implementere interfacet uden yderligere klasser. Lad os overveje et lille 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 eksempel indeholder interfacet Greeting
en standardmetode sayHello()
med en standardimplementering. Klassen GreetingImpl
implementerer dette interface og overskriver metoden greet()
. I main-metoden oprettes en instans af GreetingImpl
, og begge metoder kaldes.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 4.76
Standardmetoder
Stryg for at vise menuen
Abstrakt klasse vs Interface: Interfacet slår igen!
Tidligere kunne metoder med implementeringer kun eksistere i abstrakte klasser, men fra og med Java 8 findes de også i interfaces.
Lad os se på syntaksen for at erklære en default-metode:
default dataType methodName(parameters) {
// implementation
}
Vi har brug for default-metoder til de samme formål som almindelige metoder i Java. Vi bruger dem, når vi har brug for en implementering i metoden, og når vi kun ønsker at implementere interfacet uden yderligere klasser. Lad os overveje et lille 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 eksempel indeholder interfacet Greeting
en standardmetode sayHello()
med en standardimplementering. Klassen GreetingImpl
implementerer dette interface og overskriver metoden greet()
. I main-metoden oprettes en instans af GreetingImpl
, og begge metoder kaldes.
Tak for dine kommentarer!