다음을 통해 공유


final 한정자

업데이트: 2007년 11월

클래스를 확장할 수 없거나 메서드 또는 속성을 재정의할 수 없음을 선언합니다.

final statement

인수

  • statement
    필수적 요소. 클래스, 메서드 또는 속성 정의입니다.

설명

final 한정자는 클래스를 확장할 수 없거나 메서드 또는 속성을 재정의할 수 없도록 지정하는 데 사용됩니다. 이를 통해 다른 클래스가 중요한 함수를 재정의하여 클래스의 동작을 변경할 수 없도록 합니다. final 한정자를 사용하는 메서드는 파생 클래스의 메서드로 숨기거나 오버로드할 수 있습니다.

클래스의 메서드와 속성 및 클래스에는 final 한정자로 표시할 수 있습니다. 인터페이스, 필드 및 인터페이스의 멤버는 final 한정자를 사용할 수 없습니다.

final 한정자를 다른 상속 한정자(abstract)와 조합하여 사용할 수 없습니다. 기본적으로 클래스 멤버는 abstractfinal이 아닙니다. 상속 한정자는 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.

요구 사항

.NET 버전

참고 항목

개념

변수 및 상수의 범위

형식 주석

참조

abstract 한정자

hide 한정자

override 한정자

var 문

function 문

class 문

기타 리소스

한정자