super를 사용하는 건, 부모와 자식 클래스의 파라미터 이름이 꼭 같아야하나요?
469
1 asked
OOP 상속 부분 강의에서 보면
부모클래스의 파라미터 이름과 자식 클래스 파라미터 이름을 다 같게 쓰시더라구요.
혹시 변수 이름 구분을 하면 오류가 나는지 한번 구분을 해보았는데,
super뒤의 부모 클래스 파라미터를 적는 부분에서 오류가 나더라구요.
두 개를 다르게 지정하면 안되는건가요?
예를 들어 강의에 나온 대로 받은 입력을 2배하는 클래스, 4배하는 클래스를 만들었을 때
class Timestwo {
int number1;
Timestwo(this.number1);
int calculate(){
return this.number1 * 2;
}
}
class Timesfour extends Timestwo{
Timesfour(int number2) : super(number1);
int calculate(){
return super.number1 * 4;
}
}밑에서 5번째줄, Timesfour(int number2) : super(number1) 부분에서
number1아래에 빨간줄이 생겨요.
저는 Timesfour(int number2)는 Timesfour라는 클래스의 파라미터를 받는 거라 아무 이름이어도 된다고 생각했고,
super( )안은 부모클래스(Timestwo)의 파라미터를 받는거라 number1을 써야한다고 생각했거든요.
그런데 안되더라구요...?
제가 어디를 잘못 이해하고 있는걸까요?
Answer 1
0
안녕하세요!
Timesfour에서 number2라는 변수 이름으로 int 값을 받고 계시는데 갑자기 number1이라는 변수값을 super 컨스트럭터에 입력하셔서 그렇습니다. Timesfour 생성자가 실행될때는 number1이라는 변수는 존재하지 않습니다 (다시한번 잘 분석해보시면 이해 할 수 있으실거예요). 그렇기때문에 number2를 super 생성자에 넣어주셔야합니다.
감사합니다!
video_call 플러그인 설치후 에러 발생
0
40
1
SDK 안드로이드 설치 질문!
0
55
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
90
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
63
1
홈스크린 함수를 함축해서 main.dart에 옮기는 문제
0
51
1
플레이스토어
0
57
1
아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?
0
52
1
가이드라인 질문
0
55
0
emulator 에러 환경설정 뭐가 문제 일까요??
0
75
1
emulator 실행 오류
0
91
3
Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련
0
68
1
pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의
0
41
1
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
0
51
1
video_call 플러그인 설치시 에러문제
0
61
1
children 안의 if 문에서 { } 못쓰는 이유?
0
45
1
이렇게 오류가 떠요
0
60
1
AppBar 사용했는데
0
60
2
[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다
0
54
1
StatefulWidget 실습 에러가 발생합니다.[해결완료]
0
61
1
Video Player 프로젝트에 대한 추가 질문
0
50
0
Row위젯이나 column위젯의 위치는 누가 정하나요??
0
38
1
geolocator 오류때문에 개발진행이 불가능입니다
0
59
1
API 관련 이슈
0
82
2
VoidCallback 뒤에 null 연산자 표기에 관한 질문
0
41
1

