티스토리 뷰
fun main() {
val button: View = Button()
button.click()
}
abstract class View {
abstract fun click()
}
class Button: View() {
override fun click() {
println("Button")
}
}
abstract class는 abstract fun을 가진다.
abstract fun의 바디는 구현할 수 없다.
fun main() {
val button: View = Button()
button.click()
}
open class View {
open fun click() {
println("View")
}
}
class Button: View() {
override fun click() {
super.click() // 없어도 됨
println("Button")
}
}
open class는 상속 가능한 클래스이다.
open fun은 override 가능한 함수이다.
open fun은 바디를 구현해야만 한다.
super.click()을 사용하지 않아도 된다.
fun main() {
val view: View = Button()
view.showOff()
}
open class View {
open fun click() {
println("View")
}
}
class Button: View() {
override fun click() {
super.click()
println("Button")
}
}
fun View.showOff() = println("View Show Off")
fun Button.showOff() = println("Button Show Off")
확장 함수를 사용하면 정적 타입에 의해 어떤 확장 함수가 호출될지 결정되지,
동적인 타입에 의해 확장 함수가 결정되지 않는다.
'Kotlin' 카테고리의 다른 글
[Kotlin] 확장 프로퍼티 (0) | 2021.04.05 |
---|---|
[Kotlin] 확장 함수 (0) | 2021.04.05 |
[Kotlin] String vs StringBuffer vs StringBuilder (0) | 2020.10.26 |
[Kotlin] 선형리스트(ArrayList) vs 연결리스트(LinkedList) (0) | 2020.10.22 |
[Kotlin] for (0) | 2020.09.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- XML
- Design Pattern
- ArrayList
- 혀가 길지 않은 개발자
- James Kim
- Kotlin
- Architecture Pattern
- 자바
- JSONArray
- recyclerview
- TabLayout
- View
- Android
- DataBinding
- activity
- Intent
- handler
- 안드로이드
- coroutine
- MVVM
- fragment
- 코틀린
- 안드로이드 #코틀린 #Android #Kotlin
- Livedata
- ViewModel
- ViewPager2
- CoordinatorLayout
- JSONObject
- java
- Vue.js #Vue.js + javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함