반응형
정말 기초부터 혼자 공부하면서 같이 정리해나가는 정리노트
1. 오버라이딩
- 클래스 상속을 통해 상위 클래스의 정의된 멤버를 하위 상속받은 하위클래스에서 사용할때
- 이런경우 상위클래스에 정의되어 있는 멤버를 다시 수정 또는 추가 등 재정의 작업을 오버라이딩이라 한다
- 변수도 오버라이딩 기법으로 정의가능하나 주로 함수를 재정의 한다
- 오버라이딩 할 상위 멤버앞에는 상속과 동일하게 open 키워드를 붙여준다.
- 재정의할 맴버는 override 키워드를 붙이고 재정의할 맴버명을 그대로 사용한다
open class User()
{
// open 키워드를 이용한 상속대상 클래스
open var name = "Kim"
open fun myName() {
println("My name is $name")
}
}
class User2 : User()
{
// 상속받은 멤버를 재정의 할땐 앞에 override 키워드
// 새로운 내용을 작성하면 된다
override var name = "Lee"
var age = 20
override fun myName() {
println("name = $name, age = $age")
}
}
fun main()
{
var obj = User()
var obj2 = User2()
// 결과는 My name is Kim
obj.myName()
// 결과는 name = Lee, age = 20
obj2.myName()
// 동일한 함수를 사용해도 재정의 됨에 따라서 결과가 바뀐다.
}
728x90
반응형
'나미 > 안드로이드' 카테고리의 다른 글
코틀린으로 앱개발까지.. 12. 오브젝트 클래스 (92) | 2023.12.22 |
---|---|
코틀린으로 앱개발까지.. 11. 데이터 클래스 (100) | 2023.12.11 |
코틀린으로 앱개발까지.. 9. 클래스 상속 (37) | 2023.11.17 |
코틀린으로 앱개발까지.. 8. 클래스와 생성자(class, constructor) (8) | 2023.10.19 |
코틀린으로 앱개발까지.. 7. 반복문(for, while) (2) | 2023.10.19 |
코틀린으로 앱개발까지.. 6. 조건문 (if else, when) (2) | 2023.10.18 |
코틀린으로 앱개발까지.. 5. 배열 (Array, List, Set, Map) (0) | 2023.10.15 |
코틀린으로 앱개발까지.. 4. 함수, nothing, null허용 (2) | 2023.10.10 |
코틀린으로 앱개발까지.. 3. 문자와 문자열 (1) | 2023.10.10 |
The emulator process for AVD Pixel_2_API_30 has terminated (2) (0) | 2023.10.10 |