C#/C# Concept
[C#] new
군우
2018. 3. 19. 19:37
키워드 new
new 를 override 로 바꾸면 b가 출력되는데
new를 붙인 경우 참조 대상의 객체 변수의 형에 따라 결정된다.
override는 상위클래스의 a메소드를 가리는 효과인데
new는 안가리네.
new를 붙이면 그 변수의 형태에 따라서 결정을 다시하는 것임.
virtual은
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | using System; namespace CSStudy_newOverriding { class Program { static void Main(string[] args) { A ins1 = new A(); B ins2 = new B(); A ins3 = new B(); ins1.a(); ins2.a(); ins3.a(); } class A { public virtual void a() { Console.WriteLine("class a"); } } class B: A { public new void a() // 여기 new를 override로 바꾸면 { // b기츨략됨 Console.WriteLine("class b"); } } } } | cs |