1
using System;
 2
 3
namespace 메서드오버라이드
 4
...{
 5
    public class ParentClass
 6
    ...{
 7
        public virtual void Hi1()
 8
        ...{
 9
            Console.WriteLine("기본 : 안녕하세요.");
10
        }
11
        public void Hi2()
12
        ...{
13
            Console.WriteLine("기본 : 반갑습니다.");
14
        }
15
        public void Hi3()
16
        ...{
17
            Console.WriteLine("기본 : 또 만나요.");
18
        }
19
    }
20
    public class ChildClass : ParentClass 
21
    ...{
22
        public override void Hi1()
23
        ...{
24
            Console.WriteLine("파생 : 안녕하세요.");
25
        }
26
        public new void Hi2()
27
        ...{
28
            Console.WriteLine("파생 : 반갑습니다.");
29
        }
30
        public new void Hi3()
31
        ...{
32
            base.Hi3(); // 기본 클래스의 멤버에 접근
33
        }
34
    }
35
    public class 메서드오버라이드
36
    ...{
37
        public static void Main(string[] args)
38
        ...{
39
            ChildClass child = new ChildClass();
40
            child.Hi1(); // virtual -> override
41
            child.Hi2(); // X -> new
42
            child.Hi3(); // X <- base
43
        }
44
    }
45
}