Тавзеҳ диҳед, ки истифодаи синфҳои абстрактӣ дар Java ва Kotlin чӣ фарқ дорад.
sobes.tech AI
Ҷавоб аз AI
Дар Java ва Kotlin, синфҳои абстрактӣ барои эҷоди синфҳои асосӣ истифода мешаванд, ки мустақиман намешаванд, аммо метавонанд мерос гиранд.
Фарқиятҳо:
-
Дар Kotlin, ҳамаи синфҳо ба таври пешфарз финалӣ мебошанд, бинобар ин барои эҷоди синфи абстрактӣ лозим аст калиди калидии
abstract-ро истифода баред. Дар Java, синфҳо ба таври пешфарз финалӣ нестанд, аммо барои синфҳои абстрактӣ ҳамabstractистифода мешавад. -
Дар Kotlin, синфҳои абстрактӣ метавонанд дорои методҳои абстрактӣ ва мушаххас бошанд, ҳамон тавр ки дар Java.
-
Kotlin интерфейсҳо бо амалишавии пешфарзӣ доранд, ки эҳтиёҷ ба синфҳои абстрактиро дар баъзе ҳолатҳо кам мекунад.
-
Kotlin имкон медиҳад, ки интерфейсҳоро бисёртарафа мерос гиред, аммо на синфҳоро, ҳамон тавр ки дар Java.
Масали синфи абстрактӣ дар Kotlin:
abstract class Animal {
abstract fun makeSound()
fun sleep() {
println("Sleeping")
}
}
class Dog : Animal() {
override fun makeSound() {
println("Woof")
}
}
Дар Java, ин ба монанди:
abstract class Animal {
abstract void makeSound();
void sleep() {
System.out.println("Sleeping");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Woof");
}
}