언어 자료구조 알고리즘/Escort C#

[C#] 무효화 - new 키워드, base 키워드

언제나휴일 2016. 5. 2. 14:32
반응형


무효화 - new 키워드, base 키워드


6.2.3 무효화 - new 키워드, base 키워드

 

 C#에서 파생된 형식에서 기반 형식에 정의된 멤버와 같은 이름의 멤버를 new 키워드를 사용하여 캡슐화하면 기반 형식의 멤버는 무효화됩니다. 이 때는 사용하는 곳의 형식에 따른 멤버가 사용됩니다. , 기반 형식의 변수로 접근하면 기반 형식의 멤버가 사용되고 파생 형식의 변수로 접근하면 파생 형식의 멤버가 사용됩니다.

 

new 키워드를 이용한 무효화

class Man

{

    internal void Work()

    {

        Console.WriteLine("일을 하다.");

    }

}

class Student : Man

{

    internal new void Work() //new 키워드를 이용하여 Man 형식의 Work메서드 무효화

    {

        Console.WriteLine("공부하다.");

    }

}

class Program

{

    static void Main()

    {

        Student student = new Student();

        student.Work();

        Man man = student;

        man.Work();

    }

}

▶ 실행 결과

공부하다.

일을 하다.

 

 그리고 C#에서는 파생 형식에서 무효화 된 기반 클래스의 멤버를 사용할 수 있게 base 키워드를 제공하고 있습니다. 만약, 파생 형식에서 base 키워드를 통해 멤버를 호출하면 무효화 된 기반 클래스의 멤버가 사용됩니다.

 

base 키워드로 무효화 된 멤버 사용

class Man

{

    internal void Work()

    {

        Console.WriteLine("일을 하다.");

    }

}

class Student : Man

{

    internal new void Work() //new 키워드로 기반 형식 Man Work 메서드 무효화

    {

        base.Work(); //base 키워드로 무효화 Work 메서드 사용

        Console.WriteLine("공부하다.");

    }

}

class Program

{

    static void Main()

    {

        Student student = new Student();

        student.Work();

    }

}

▶ 실행 결과

일을 하다.

공부하다.

 

[C#] 6. 상속과 다형성 - 6.1 상속

[C#] 6.2 다형성 - 기반 형식의 변수로 파생한 개체를 참조

[C#] 6.2.2 is 연산자와 as 연산자

[C#] 무효화 - new 키워드, base 키워드

[C#] 6.2.4 가상화 virtual, 재정의 override

[C#] 6.2.5 abstract 키워드를 이용한 추상화

[C#] 6.2.5 sealed 키워드를 이용한 봉인

반응형