Diary of Duc

Kotlin Opp

2018-03-28

Chúng ta đã làm quen với cách sử dụng Kotlin, phần này sẽ đưa ra các ví dụ về kế thừa, nạp chồng, ghi đè , trừu tượng, … trong Kotlin hướng đối tượng.

Extend

Trong Kotlin, lớp mặc định là lớp final, 1 lớp được extend chỉ khi nó là lớp open.

Class Info extend class User:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
open class User{
val userName: String = "Emily"
}

class Info: User(){
private lateinit var name: String

fun setname(){
name = userName
}

fun getname(): String{
return name
}
}

fun main(args: Array<String>){
val info = Info()
info.setname()
print(info.getname())
}


Overload

Overload phương thức activity():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class User{
private val userName: String = "Emily"

fun activity(P0: String){
println(userName + P0)
}

fun activity(P0: String, P1: String){
println(userName + P0 + "" + P1)
}
}

fun main(args: Array<String>){
val user = User()
user.activity(" play game")
user.activity(" Play game"," Flappy Bird")
}


Override

Override phương thức activity(), dùng super để gọi phương thức bị override:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
open class User{
val userName: String = "Emily"

open fun activity(){
println(userName + " play game Flappy bird")
}
}

class Activity: User(){
override fun activity(){
super.activity()
println(userName + " play game Mario")
}
}

fun main(args: Array<String>){
val activity = Activity()
activity.activity()
}


Abstract

User là class abstract, có phương thức name() là phương thức abstract, class Info extend class User và override phương thức name():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
abstract class User{
abstract fun name()
}

class Info: User(){
override fun name(){
print("Emily")
}
}

fun main(args: Array<String>){
val info = Info()
info.name()
}


Interface

User là class interface, class Info extend class User và override phương thức name():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
interface User{
fun name()
}

class Info: User{
override fun name(){
print("Emily")
}
}

fun main(args: Array<String>){
val info = Info()
info.name()
}
Tags: kotlin

URL QR