using System;
using System.Collections.Generic;
using System.Text;
namespace ClassTest4
{
    class AB
    {
        public virtual void ABC()
        {
            Console.WriteLine("A-ABC");
        }
        public virtual void Display()
        {
            Console.WriteLine("A-Display");
        }
        public virtual void Output()
        {
            Console.WriteLine("A-Output");
        }
    }
    class A:AB {
        public sealed override void ABC() {
            Console.WriteLine("A-ABC");
        }
        public override void Display()
        {
            Console.WriteLine("A-Display");
        }
        public override void Output()
        {
            Console.WriteLine("A-Output");
        }
    }
    class B :A{
        /*    public override void ABC() {
                Console.WriteLine("B-ABC");
            } 위가 실드로 되어있어서 재정의 못함*/
        public override void Display() {
            Console.WriteLine("B-Display");
        }
    }
    class CTest
    {
        static void Main(string[] args)
        {
            A pA = new A();
            pA.ABC();pA.Display();pA.Output();
            pA = new B();
            pA.ABC();pA.Display();pA.Output();
        }
    }
}
- sealed 클래스는 파생 클래스에서 사용할 수 없는 클래스 이다.
- sealed 클래스는 상속을 막는 클래스 이다.
- sealed 클래스는 보안 및 코드 설계 부분의 명확하게 하기 위해 사용
- sealed클래스는 상업적인 코드 및 내부구현이 복잡해 파생클래스에서
- sealed 메서드는 파생 클래스에서 오버라이드 할 수 없다.
[출처] sealed 메서드와 클래스|작성자 rlaals6961
'.NET > C#' 카테고리의 다른 글
| 어셈블리 동적 로딩 (0) | 2010.03.31 | 
|---|---|
| Const Vs Readonly (0) | 2010.03.29 | 
| Sort메소드 (0) | 2010.03.28 | 
| Delegate-2 (0) | 2010.03.27 | 
| 직렬화 (0) | 2010.03.27 | 
