Flutter/Dart 문법
[Dart] 오버라이딩
Chafle
2023. 3. 22. 15:03
반응형
메서드는 클래스 내부에 있는 함수
오버라이드: 덮어서 쓴다(우선 시 하다)
상속한 경우에만 오버라이드를 사용한다.
void main() {
TimesTwo tt = TimesTwo(2);
print(tt.calculate());
}
class TimesTwo {
final int number;
TimesTwo(
this.number,
);
int calculate() { // 이 메서드를 오버라이드
return number * 2;
}
}
위와 같이 number를 받아서 *2를 하는 메서드를 작성했고
오버라이드 하여 *4의 메서드를 상속받은 자식클래스에서 사용하고 싶다고 한다면
class TimesFour extends TimesTwo {
TimesFour(
int number,
) : super(number);
@override
int calculate() {
return super.number * 4;
}
}
@override를 통하여 메서드를 재정의 할 수 있다.
super(부모)의 caclulate메서드를 사용하여
@override
int calculate() {
return super.calculate() * 2 ;
}
이렇게도 오버라이드 할 수 있다.
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 number * 2;
}
}
class TimesFour extends TimesTwo {
TimesFour(
int number,
) : super(number);
@override
int calculate() {
return super.calculate() * 2 ;
}
}
반응형