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;
}

}