회원 로그인
|
override와 new
override와 new
클래스A와 그 파생 클래스B가 있고 메소드 m이 양쪽에 있다고 할 때 override와 new의 차이점을 알아본다.
override의 경우
override를 붙인 메소드의 경우 객체 변수의 형에도 불구하고 인터페이스의 형에 따라 참조 대상이 결정된다.
A 클래스의 메소드
B 클래스의 메소드
B 클래스의 메소드
new의 경우
new를 붙인 경우 참조 대상의 객체 변수의 형에 따라 결정된다.
A 클래스의 메소드
B 클래스의 메소드
A 클래스의 메소드
참고> c#이 보이는 그림책
클래스A와 그 파생 클래스B가 있고 메소드 m이 양쪽에 있다고 할 때 override와 new의 차이점을 알아본다.
override의 경우
override를 붙인 메소드의 경우 객체 변수의 형에도 불구하고 인터페이스의 형에 따라 참조 대상이 결정된다.
//예 using System; class A { public virtual void m() { Console.WriteLine("A 클래스의 메소드"); } } class B : A { public override void m() { Console.WriteLine("B 클래스의 메소드"); } } class OverrideSample { static void Main() { A a = new A(); B b = new B(); A ab = new B(); //override의 경우 클래스B의 메소드가 사용 a.m(); b.m(); ab.m(); //override의 경우 클래스B의 메소드가 사용 } }결과
A 클래스의 메소드
B 클래스의 메소드
B 클래스의 메소드
new의 경우
new를 붙인 경우 참조 대상의 객체 변수의 형에 따라 결정된다.
//예 using System; class A { public void m() { Console.WriteLine("A 클래스의 메소드"); } } class B : A { public new void m() { Console.WriteLine("B 클래스의 메소드"); } } class NewSample { static void Main() { A a = new A(); B b = new B(); A ab = new B(); //new의 경우 클래스A의 메소드가 사용 a.m(); b.m(); ab.m(); //new의 경우 클래스A의 메소드가 사용 } }결과
A 클래스의 메소드
B 클래스의 메소드
A 클래스의 메소드
참고> c#이 보이는 그림책
댓글 0개
| 엮인글 0개
285개(10/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
105 | [Python] zipfile 모듈 | 푸딩뱃살 | 4638 | 2015.09.15 10:17 |
104 | [PHP] array 배열 / sort 정렬 | 푸딩뱃살 | 3460 | 2015.09.02 21:11 |
103 | [PHP] function 함수 | 푸딩뱃살 | 2373 | 2015.08.14 22:28 |
102 | [PHP] while, do, foreach 반복문 | 푸딩뱃살 | 4998 | 2015.08.14 22:25 |
101 | [PHP] if ~ else 조건문 | 푸딩뱃살 | 2579 | 2015.08.14 22:13 |
100 | [PHP] PHP 기초 (에러,주석,변수,연산자) | 푸딩뱃살 | 3252 | 2015.07.08 00:43 |
>> | [C#] override와 new | 푸딩뱃살 | 3238 | 2015.05.14 01:34 |
98 | [C#] 다형성 | 푸딩뱃살 | 2586 | 2015.05.08 15:42 |
97 | [C#] 인터페이스 상속 | 푸딩뱃살 | 2647 | 2015.05.08 14:35 |
96 | [C#] 인터페이스 (Interface) | 푸딩뱃살 | 2578 | 2015.05.07 23:52 |
95 | [C#] 추상 클래스 | 푸딩뱃살 | 3303 | 2015.05.07 22:45 |
94 | [Python] 랜덤 패스워드 생성 | 푸딩뱃살 | 4289 | 2015.03.24 02:34 |
93 | [PHP] php 5.5.x로 업데이트로 인한 preg_replace() 오류 | 푸딩뱃살 | 2739 | 2015.03.14 02:15 |
92 | [PHP] php 5.5.x로 업데이트로 인한 mysql_connect() 오류 | 푸딩뱃살 | 6110 | 2015.03.14 02:01 |
91 | [PHP] PHP Warning: Cannot modity header information ~ PH | 푸딩뱃살 | 2790 | 2015.03.05 15:41 |
90 | [C#] 참조 전달 ref와 값 전달 out | 푸딩뱃살 | 6874 | 2015.02.26 00:10 |
89 | [VisualStudio] Visual Studio Express 2013 Windows Desktop 설치 | 푸딩뱃살 | 2993 | 2015.02.17 03:12 |
88 | [C#] 구조체 | 푸딩뱃살 | 3628 | 2015.01.07 14:17 |
87 | [C#] 오버라이드 (override) | 푸딩뱃살 | 4255 | 2014.11.21 02:17 |
86 | [C#] 이름의 은폐 new | 푸딩뱃살 | 3416 | 2014.11.21 02:13 |