자바 중급 개념상속super 퀴즈

Q

자바 super 퀴즈 5번문제 질문입니다

조회 1209

좋아요 0

2017년 8월 28일




댓글 5

2017년 8월 28일
G 클래스에 있는 a메소드 바디에 super(1) 이 코드를 넣어주면 F 와 G가 가진 기본생성자의 초기값이 1로 설정되는 것 아닌가요? 왜 오류가 발생하는지 모르겠습니다 ㅠㅠ
2017년 8월 28일
G 클래스에 파라미터를 받지 않는 생성자 public G() 를 만들고 바디에 super(1)을 입력하면 G 인스턴스를 생성할 때 public F(int a) 생성자가 호출됩니다. 이렇게 쓰는게 맞나요...?
2017년 8월 28일
코드 설명 : 위 수정한 코드에서 G 클래스 a 메소드 바디에 적은 supuer(1) 코드를 지운 뒤 public G() 생성자를 새롭게 만들고 이 생성자 바디에 super(1)을 다시 적어주면 G인스턴스 생성시에 public F(int a) 생성자가 호출됩니다 :)
2017년 8월 28일
질문을 정리하자면, G 클래스에서 Public G() 생성자를 입력하지 않고 a 메소드 바디에 super(1)을 입력하면 에러가 발생하는데 이유가 무엇인지 이해가 어렵습니다! 자식클래스에서 생성자를 선언하지 않으면 기본생성자를 사용하게 되는데, 이 기본 생성자는 부모클래스 생성자를 호출할 때 기본 생성자만 호출할 수 있는 것 같습니다... ㅠㅠ?...왜그럴까요...
2017년 8월 29일
에러코드를 보니 super()는 반드시 맨 첫줄에 선언하라고 하네요
A
2개의 답변이 있어요
커뮤니티 파트너 채택



2017년 8월 29일

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇