inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

Java에서 this와 super 키워드

생성자 생성시 질문있어요

해결된 질문

275

주서

작성한 질문수 18

0

5분37초 영상입니다.

 

해당 main함수에서 Child c = new Child()를 생성시엔

부모 클래스의 메서드를 부르지 않나요?

 

Child() 생성자가 없기때문에 무시한 것인지 알고싶어요

python java c 정보처리기사

답변 3

0

주서

음... 그냥 해당 내용 전체인데요 여기에 child()만 추가한 소스입니다

class Parent{

int x = 10;

}

class Child extens Parent {

int x = 20;

child()

void display(){

system.out.println("Child x: " +x);

system.out.println("Parent x: " + super.x);

}

}

public class Main {

public static void main(String[] args) {

Child c = new Child()

c.display();

}

}

해당 코드 사용시 child()생성자에 의해서 부모 클래스를 불러와서 int x=10을 덮어쓰는가에 대한 질문입니다!

0

주말코딩

아뇨, 저렇게 하면 여전히 아래처럼 나옵니다.

Child x: 20
Parent x: 10

 

기본생성자라는 것은 명시되어있지 않아도 사실 있습니다.

말씀하신 대로 Child(){}는 코드상 보이지 않지만, 이미 존재합니다.

Parent에도 기본생성자가 없으면 Java 컴파일러가 알아서 끼워 넣어줍니다.

 

자바에서 생성자 자체는 상속받을 수 없습니다.

super()로 부모의 생성자를 호출할 수는 있지만요.

 

그러니까 요약하자면,

원래 코드와 작성해주신 코드는 동작하는 것이 아예 똑같이 해석됩니다.

 

0

주서

C와 달리 class간 변수 변동은 없다고 이해하는게 좋을까요.. 뭔가 어렵네요..ㅠㅠ

0

주말코딩

그렇게 외우시면 또 문제가 되는게, 다른 클래스안의 메서드에서 또 다른 클래스의 인스턴스 변수에 접근할 수는 있습니다..

 

결국 구조 전체를 이해하시는 것이 좋긴한데, 이해가 어려우신 부분을 계속 질문주시는 수 밖에...😭😭😢😢

1

주서

아 인스턴스도 있었지요ㅜ

그렇네요.. 고맙습니다

0

주서

아닙니다 ㅎㅎ 영상 계속보다보니 10분에 영상에 다시 설명을 주셨네요 ! 이부분은 해결 됬습니다.

 

다만 한가지 더 질문이 있는데요,

만약 10:58초 영상에서

class Child extens Parent {

int x = 20;

child()

void display(){

.

.

.

 

이런 식으로 명시하면

답은 Child x : 10

Parent x : 10

이렇게 답이 되는게 맞을까요? 상속부분이 너무 약해서 제대로 이해한건지 알고싶어요

1

주말코딩

저 Child()라는 것이 자식클래스에 생성자를 넣고 싶으신 것 같은데, 내부 코드까지 다 작성해주셔야 알 수 있습니다. 번거롭더라도 전체 코드예시를 주시면 좋겠습니다.

 

Child로 생성한 객체의 인스턴스 변수 x가 10으로 세팅되려면, 말씀하신 대로 생성자를 통해서 하면 정상적으로 동작하긴 합니다.

예를 들어 자식클래스(Child) 안 쪽에 아래와 같이 추가하면 Child의 x값도 10이 됩니다.

Child() {
 this.x = 10;
}

 

이렇게 해도 되고, 저 안에 매개변수 1개 짜리 this(10)과 같이 줘도 되고요.

방법은 무궁무진합니다. 심지어 다른 메서드에서 스스로의 인스턴스 변수에 접근해서 강제로 바꿀 수도 있고요. (setter라고 불리기도 합니다.)

 

어쨌든, 내 객체 내의 변수를 바꾸면 10으로 바뀝니다. 정확한 예제코드 완성본이 필요합니다.

 

시간이 되실 때 수강평 하나 꼭 부탁드립니다.

제게 큰 힘이 됩니다.. :)

 

0

주말코딩

생성자말고 일반 인스턴스 메서드를 말씀하시는 것일까요?

저 형태는 오로지 자식으로 태어난 경우입니다. 만약에 부모에 있는 메서드를 자식이 재정의했다면 자식 것으로 호출됩니다. 해당 영상에는 c.show()만 부르고 있네요.

 

만약에 display를 부른다고 하더라도, 자식이 재정의했기 때문에 자식 것이 실행됩니다.

1

주서

이 내용이 아니였긴한데! 재질문 하나 드릴게요! ㅎㅎ..

0

주말코딩

네 위에 답변 달아드렸습니다~

0

주서

앗 코드 전체로 해서 재질문 드렸습니다!

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

40

2

26년 1회 실기 해설 강의

0

55

2

53번 4-1 자료 오류 있는 것 같습니다.

0

70

2

7번문제

0

59

2

C언어 변형문제 9번문제 Pdf 수정요청

0

47

2

메서드 오버드라드

0

47

2

실수

0

46

1

공부 우선순위 우선강의 알려주세요

0

87

1

생성자 호출순서 강의 10번 문제 30분대 질문입니다

0

48

2

25년 2회 기출 5:40 질문입니다.

0

40

2

모의고사1회 3번 파이썬문제

0

73

2

C언어 출제변형 6번 문제

0

50

2

c언어 출제변형 강의 질문

0

31

2

28:40

0

33

2

C :  언어 배열과  문자열 수업자료

0

29

2

파이썬 리스트, 딕셔너리 질문

0

41

2

모의고사 관련 질문 건

1

68

3

자료 내용 오류

0

63

2

정적 변수, 정적 메서드(static) v2

0

48

2

v1.2 와 v0.91 PDF

0

101

1

업캐스팅 (부모형태, 자식생성자)

0

51

2

정보처리산업기사 준비중입니다.

0

74

2

실기 D -6

0

105

2

(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다

0

57

3