-
카테고리
-
해결 여부
미해결
코틀린 상속관련 질문입니다
18.06.28 09:28 작성 조회수 171
0
코틀린에서 val은 java로따지면 final인걸로 알고있었는데요
이번 Class-상속 강의에서 override되는게 조금 특이해서 이렇게 질문남기게되었습니다.
조금 찾아본바로는 코틀린에서의 val은 immutable이 아니고 read-only라던데
어떻게 다른건지 감이 오지않습니다.
알기쉽게 알려주실수 있을까요?
답변을 작성해보세요.
0
하울
지식공유자2018.06.28
예리한 질문입니다. 저도 이것때문에 처음에 많이 했깔렸습니다. 여기서 보시면 val 값을 세팅하는 것이 아니고 getName Function을 오버라이드 한다고 생각하시면 됩니다. 즉 이 Class-상속 영상의 실제 자바 코드는
class Human {
public final String name = "하울";
public String getName() {
return name;
}
}
class Person extends Human {
@Override
public String getName() {
return "Howl";
}
}
public class JavaMain {
public static void main(String[] args) {
Human human = new Human();
Person person = new Person();
System.out.println(person.getName());
System.out.println(human.getName());
}
}
라고 생각하시면 됩니다. 사실 이 코드에는 getName 있지만 이게 코틀린으로 넘어가게되면 Get 생략되면서 name만 남게 됩니다.
답변 1