알아보기 쉽게 간단히 쓰겠습니다~!
class Main
HighschoolStudent hs = new HighschoolStudent;
hs.introduce();
class Student
public String name = "Student";
public study()
"문구 출력"
public play()
"문구 출력"
public void introduce()
System.out.println("I am " + name);
study();
play();
class HighschoolStudent extends Student
public String name = "HighschoolStudent";
public study()
"문구 출력1"
public study()
"문구 출력2"
오버라이딩 공부하고있는데요
1.
HighschoolStudent hs = new HighschoolStudent;
hs.introduce() 선언한 시점에서
처음에 자식 클래스 호출을 자식클래스로 했음에도 불구하고 부모클래스에 있는 introdouce 메소드는 당연히 호출이 가능한건가요?
2. play 메소드와 study 메소드가 자식,부모 클래스 모두 있으니까
자식클래스로만 출력되는 오버라이딩은 이해 하겠는데요.
만약 부모클래스에 play 메소드가 public이 아닌 private 으로 선언되면 왜 부모클래스의 play 메소드를 참조하나요?
3. 그리고 2번의 연장선상의 질문인데요.
public String name은 부모와 자식클래스 모두 name이라는 변수는 같은데 hs.introduce()를 호출하면 왜
부모클래스에서 선언된 String name을 따오는건가요?
뭔가 알듯말듯 하면서도 참 사람 헷갈리게 만드네요..ㅠㅠ
작은 댓글하나라도 달아주시면 감사하겠습니다. ㅠㅠ