해결된 질문
작성
·
79
답변 1
1
생성자는 클래스의 이름하고 같아야합니다.
class Y extends X {
// 이 부분의 블럭
}
에 해당하는 곳에, Y라고 이름 지어진 메서드가 있나요?
없습니다.
메서드가 딱 2개 있습니다. method1, method2가 그 이름들이죠.
생성자는 메서드와 똑같이 생겼으나, 클래스 이름하고 같아야 합니다.
생성자로 사용하려면
public int Y() {
}
이런 식으로 메서드의 이름이 클래스 이름과 완전하게 같아야 생성자입니다.
우리가 변수를 만들 때
X y = new Y();
이렇게 만들었죠?
이걸 자연어로 풀어서 설명하면,
X 형태의 y라는 변수를 선언할건데, new(하나의 객체를 생성) 키워드를 쓸거야.
그런데 나는 Y에 매개변수가 없는 생성자(Y())로 변수를 태어나게 하고 싶어.
라는 뜻입니다. new 뒷 부분이 어떤 생성자로 태어나게 할 지를 쓰는 겁니다.
Y()가 없는데 어떻게 사용해요? 라고 질문하실 수 있는데,
없으면 아무 일도 일어나지 않은 기본 생성자를 Java가 뒷 단에서 알아서 만들어줍니다.
생성이 됐는데 아무 것도 출력하지 않았을 뿐입니다.
혹시 나머지는 이해하셨을까요?