Sobes.tech
Junior — Middle

Mi a különbség a Java és a Kotlin absztrakt metódusa között?

sobes.tech MI

Válasz az MI-től

Java-ban egy absztrakt metódus egy absztrakt osztályban van deklarálva, és nincs megvalósítása. Az osztálynak, amely tartalmazza az absztrakt metódust, absztraktnak kell lennie, és minden örökös köteles megvalósítani ezt a metódust, ha nem absztrakt.

Kotlinban az absztrakt metódusokat szintén absztrakt osztályokban deklarálják, de van egy fontos különbség: Kotlinban lehet olyan metódusokat deklarálni, amelyek megvalósítással rendelkeznek absztrakt osztályokban (nyitott vagy absztrakt), és az interfészek is tartalmazhatnak megvalósított metódusokat (alapértelmezett metódusok). A Kotlinban az absztrakt metódus egy olyan metódus, amelynek nincs törzse, és alosztályokban kell felülírni.

Példa Kotlinban:

abstract class Animal {
    abstract fun makeSound()
    fun sleep() {
        println("Sleeping")
    }
}

Itt a makeSound absztrakt metódus, a sleep pedig megvalósított metódus.

Ezért a különbség az, hogy a Kotlin rugalmasabb az absztrakt osztályokban és interfészekben megvalósítással rendelkező metódusok meghatározásában, míg a Java megköveteli, hogy az absztrakt metódusok megvalósítás nélküliek legyenek, és az alapértelmezett metódusokkal rendelkező absztrakt osztályokban vagy interfészekben legyenek.