나미/안드로이드

코틀린으로 앱개발까지.. 10. 클래스 오버라이딩

규남 2023. 12. 3. 21:13
반응형

정말 기초부터 혼자 공부하면서 같이 정리해나가는 정리노트

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
반응형