final 한정자
업데이트: 2007년 11월
클래스를 확장할 수 없거나 메서드 또는 속성을 재정의할 수 없음을 선언합니다.
final statement
인수
- statement
필수적 요소. 클래스, 메서드 또는 속성 정의입니다.
설명
final 한정자는 클래스를 확장할 수 없거나 메서드 또는 속성을 재정의할 수 없도록 지정하는 데 사용됩니다. 이를 통해 다른 클래스가 중요한 함수를 재정의하여 클래스의 동작을 변경할 수 없도록 합니다. final 한정자를 사용하는 메서드는 파생 클래스의 메서드로 숨기거나 오버로드할 수 있습니다.
클래스의 메서드와 속성 및 클래스에는 final 한정자로 표시할 수 있습니다. 인터페이스, 필드 및 인터페이스의 멤버는 final 한정자를 사용할 수 없습니다.
final 한정자를 다른 상속 한정자(abstract)와 조합하여 사용할 수 없습니다. 기본적으로 클래스 멤버는 abstract나 final이 아닙니다. 상속 한정자는 static 한정자와 조합하여 사용할 수 없습니다.
예제
다음 예제에서는 final 한정자의 사용 예를 보여 줍니다. final 한정자를 사용하면 파생 클래스의 메서드가 기본 클래스 메서드를 재정의할 수 없습니다.
class CBase {
final function methodA() { print("Final methodA of CBase.") };
function methodB() { print("Non-final methodB of CBase.") };
}
class CDerived extends CBase {
function methodA() { print("methodA of CDerived.") };
function methodB() { print("methodB of CDerived.") };
}
var baseInstance : CBase = new CDerived;
baseInstance.methodA();
baseInstance.methodB();
이 프로그램의 출력은 final 메서드가 재정의되지 않았음을 보여 줍니다.
Final methodA of CBase.
methodB of CDerived.