Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Oletusmenetelmät | Rajapinta
Java OOP

bookOletusmenetelmät

Abstrakti luokka vs Rajapinta: Rajapinnan vastaisku!

Aiemmin toteutuksen sisältäviä metodeja voitiin käyttää vain abstrakteissa luokissa, mutta Java 8 -versiosta alkaen niitä voi olla myös rajapinnoissa.

Tarkastellaanpa oletusmetodin määrittelyn syntaksia:

default dataType methodName(parameters) {
// implementation 
}

Tarvitsemme oletusmetodeja samoihin tarkoituksiin kuin tavallisia metodeja Javassa. Käytämme niitä, kun tarvitsemme toteutuksen metodille ja haluamme toteuttaa vain rajapinnan ilman lisäluokkia. Tarkastellaan pientä esimerkkiä oletusmetodien käytöstä:

Main.java

Main.java

copy
12345678910111213141516171819202122232425
package 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! } }

Tässä esimerkissä rajapinta Greeting sisältää oletusmenetelmän sayHello(), jolla on oletustoteutus. Luokka GreetingImpl toteuttaa tämän rajapinnan ja ylikirjoittaa greet()-menetelmän. Pääohjelmassa luodaan GreetingImpl-instanssi ja molempia menetelmiä kutsutaan.

question mark

Mikä on oletusmenetelmän tarkoitus Java-rajapinnassa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

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

bookOletusmenetelmät

Pyyhkäise näyttääksesi valikon

Abstrakti luokka vs Rajapinta: Rajapinnan vastaisku!

Aiemmin toteutuksen sisältäviä metodeja voitiin käyttää vain abstrakteissa luokissa, mutta Java 8 -versiosta alkaen niitä voi olla myös rajapinnoissa.

Tarkastellaanpa oletusmetodin määrittelyn syntaksia:

default dataType methodName(parameters) {
// implementation 
}

Tarvitsemme oletusmetodeja samoihin tarkoituksiin kuin tavallisia metodeja Javassa. Käytämme niitä, kun tarvitsemme toteutuksen metodille ja haluamme toteuttaa vain rajapinnan ilman lisäluokkia. Tarkastellaan pientä esimerkkiä oletusmetodien käytöstä:

Main.java

Main.java

copy
12345678910111213141516171819202122232425
package 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! } }

Tässä esimerkissä rajapinta Greeting sisältää oletusmenetelmän sayHello(), jolla on oletustoteutus. Luokka GreetingImpl toteuttaa tämän rajapinnan ja ylikirjoittaa greet()-menetelmän. Pääohjelmassa luodaan GreetingImpl-instanssi ja molempia menetelmiä kutsutaan.

question mark

Mikä on oletusmenetelmän tarkoitus Java-rajapinnassa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
some-alt