Kotlin for Android Developers


 Interfaces and Delegation



Download 1,04 Mb.
Pdf ko'rish
bet105/125
Sana11.08.2021
Hajmi1,04 Mb.
#144654
1   ...   101   102   103   104   105   106   107   108   ...   125
Bog'liq
Kotlin for Android Developers Learn Kotlin the Easy Way While Developing an Android App ( PDFDrive )

24 Interfaces and Delegation
24.1 Interfaces
Interfaces in Kotlin are more powerful than in Java 7. If you’ve worked with Java 8, similarities are
much closer there. In Kotlin, we can use interfaces the way we are used in Java. Imagine we have
some animals, and some of them can fly. This is the interface we could have for flying animals:
1
interface FlyingAnimal {
2
fun fly()
3
}
Both birds and bats can fly by moving their wings. So let’s create a couple of classes for them:
1
class Bird : FlyingAnimal {
2
val wings: Wings = Wings()
3
override fun fly() = wings.move()
4
}
5
6
class Bat : FlyingAnimal {
7
val wings: Wings = Wings()
8
override fun fly() = wings.move()
9
}
When a couple of classes extend from an interface, it’s very typical they both share the same
implementation. However, Java 7 interfaces can only define the behaviour, but not implement it.
Kotlin interfaces, on the other hand, are able to implement functions. The only difference from a
class is that they are stateless, so the properties that need a backing field will need to be overridden
by the class. The class will be in charge of saving the state of interface properties.
We can make the interface implement the
fly
function:
1
interface FlyingAnimal {
2
val wings: Wings
3
fun fly() = wings.move()
4
}
As mentioned, classes need to override the property:
112


24 Interfaces and Delegation
113
1
class Bird : FlyingAnimal {
2
override val wings: Wings = Wings()
3
}
4
5
class Bat : FlyingAnimal {
6
override val wings: Wings = Wings()
7
}
And now both birds and bats can fly:
1
val bird = Bird()
2
val bat = Bat()
3
4
bird.fly()
5
bat.fly()

Download 1,04 Mb.

Do'stlaringiz bilan baham:
1   ...   101   102   103   104   105   106   107   108   ...   125




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish