Junior — Middle
Objasnite u čemu se razlikuje korišćenje apstraktnih klasa u Javi i Kotlinu.
sobes.tech АИ
Одговор од АИ
U Javi i Kotlinu, apstraktne klase služe za kreiranje osnovnih klasa koje se ne mogu direktno instancirati, ali se mogu naslediti.
Razlike:
-
U Kotlinu, sve klase su po defaultu finalne, pa je za kreiranje apstraktne klase potrebno eksplicitno koristiti ključnu reč
abstract. U Javi, klase nisu po defaultu finalne, ali se takođe koristiabstractza apstraktne klase. -
U Kotlinu, apstraktne klase mogu sadržavati i apstraktne i konkretne metode, kao i u Javi.
-
Kotlin ima interfejse sa podrazumevanom implementacijom, što smanjuje potrebu za apstraktnim klasama u nekim slučajevima.
-
Kotlin podržava višestruko nasleđivanje interfejsa, ali ne i klasa, kao i Java.
Primer apstraktne klase u Kotlinu:
abstract class Animal {
abstract fun makeSound()
fun sleep() {
println("Sleeping")
}
}
class Dog : Animal() {
override fun makeSound() {
println("Woof")
}
}
U Javi je slično:
abstract class Animal {
abstract void makeSound();
void sleep() {
System.out.println("Sleeping");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Woof");
}
}