QA Automation/dart
12. Method Override
kokorii_
2023. 5. 17. 15:20
1. 설명
- Method : 클래스 내부의 함수를 메서드라고 한다.
- Method override : 자식 클래스에서 부모 클래스의 시그니처가 같은 메소드를 재정의하는 것
- 시그니처란? : 함수의 이름, 리턴 타입, 파라미터의 개수, 자료형이 같을 경우 "함수의 시그니처가 같다"고 표현한다.
- override 방법 : @override 후 다음 라인부터 시그니처가 같은 메소드를 작성한다.
void main() {
TimesTwo tt = TimesTwo(2);
print(tt.calculate());
TimesFour tf = TimesFour(2);
print(tf.calculate());
}
class TimesTwo {
final int number;
TimesTwo(this.number);
int calculate() {
return this.number * 2;
}
}
class TimesFour extends TimesTwo {
TimesFour(int number) : super(number);
@override
int calculate() {
return super.number * 4;
}
}
2. super() 를 이용한 응용
- 위 예제의 TimesFour 클래스의 calculate는 다음처럼 사용할 수도 있다.
void main() {
TimesTwo tt = TimesTwo(2);
print(tt.calculate());
TimesFour tf = TimesFour(2);
print(tf.calculate());
}
class TimesTwo {
final int number;
TimesTwo(this.number);
int calculate() {
return this.number * 2;
}
}
class TimesFour extends TimesTwo {
TimesFour(int number) : super(number);
@override
int calculate() {
return super.calculate() * 2;
}
}