자바와 달리 코틀린은 멤버 변수 override가 가능한 이유
자바에서는 상속 시에 메소드는 override가 가능하지만, 멤버 변수 override가 안되는데 코틀린에서는 상위 타입의 프로퍼티 override가 가능하다. 그 이유가 궁금해서 찾아서 정리해본다. 자바에서 상위 클래스에 정의된 메소드와 하위 클래스에 정의된 메소드의 이름과 시그니처가 같다면 하위 클래스의 인스턴스로 해당 메소드를 호출했을 때, 하위 클래스에 정의된 메소드가 동작한다. 즉, 메소드 override가 적용된다. 그렇다면, 상위 클래스에 정의된 멤버 변수와 하위 클래스에 정의된 멤버 변수의 이름이 같을 때, 하위 클래스의 인스턴스로 해당 멤버 변수를 수정하거나, 호출하면, 하위 클래스에 정의된 멤버 변수가 수정되고 호출될까? 정답은 아니다. 아래의 코드를 보자. class Parent { ..
2023.11.02