생성자 생성시 질문있어요
5분37초 영상입니다.
해당 main함수에서 Child c = new Child()를 생성시엔
부모 클래스의 메서드를 부르지 않나요?
Child() 생성자가 없기때문에 무시한 것인지 알고싶어요
답변 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
그렇게 외우시면 또 문제가 되는게, 다른 클래스안의 메서드에서 또 다른 클래스의 인스턴스 변수에 접근할 수는 있습니다..
결국 구조 전체를 이해하시는 것이 좋긴한데, 이해가 어려우신 부분을 계속 질문주시는 수 밖에...😭😭😢😢
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
45
2
조건 반복문 질문: for 문 ?
0
59
1
정처기 26-2회. 9번 질문드립니다!
0
77
1
이론 보면서 질문이 있습니다.
0
71
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
86
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
144
2
262 정처기 실기 C언어코딩
0
45
1
정보처리기사 262 실기 Hash(해시) 질문
0
77
2
static 변수 질문입니다.
0
60
2
파이썬 4강 질문입니다.
0
67
2
모의고사 1회 3번문제
0
87
3
41강 30:10
0
66
2
이론 공부법 질문 있습니다.
0
86
2
부모의 생성자 관련 질문
0
64
2
시험지 문제에 필기해도 되나요?
0
87
3
41강 11:23
0
58
2
4강파이썬 질문입니다
0
53
2
try-catch 핸들러명
0
64
2
36강 3:48
0
62
2
35강 18:27
0
65
2
자식 코드 내 super() 생략
0
59
2
출력질문
0
73
2
31강 4:06
0
64
2
파이썬 학습자료가 강의 자료와 다릅니다.
0
94
3





