회원 로그인
|
이름의 은폐 new
이름의 은폐
파생 클래스의 멤버가 기본 클래스의 멤버를 은폐하는 것을 이름의 은폐라 한다.
기본 클래스의 멤버와 같은 이름의 멤버
파생 클래스의 멤버에 기본 클래스의 멤버와 같은 이름을 붙이고자 할 경우에는 멤버의 정의 앞에 'new'를 붙인다.
*클래스에서 객체 생성할 때 new 연산자는 다른 것이므로 주의
new가 붙은 멤버를 호출하면 항상 파생 클래스 쪽의 멤버가 호출된다. 이것을 이름의 은폐라 한다.
100
base
이름이 은폐된 기본 클래스의 멤버를 파생 클래스 안에서 사용하려면 base(베이스)를 사용한다.
A 클래스의 a는 3
참고 서적> c#이 보이는 그림책
파생 클래스의 멤버가 기본 클래스의 멤버를 은폐하는 것을 이름의 은폐라 한다.
기본 클래스의 멤버와 같은 이름의 멤버
파생 클래스의 멤버에 기본 클래스의 멤버와 같은 이름을 붙이고자 할 경우에는 멤버의 정의 앞에 'new'를 붙인다.
*클래스에서 객체 생성할 때 new 연산자는 다른 것이므로 주의
class A { public int a_ = 10; } class B : A { new public int a_ = 36; //new를 붙이지 않으면 경우 메세지 }
new가 붙은 멤버를 호출하면 항상 파생 클래스 쪽의 멤버가 호출된다. 이것을 이름의 은폐라 한다.
//예 using System; class A { public int a_ = 3; } class B : A { new public int a_ = 100; } class C { public static void Main() { B b_ = new B(); Console.WriteLine(b_.a_); } }#결과
100
base
이름이 은폐된 기본 클래스의 멤버를 파생 클래스 안에서 사용하려면 base(베이스)를 사용한다.
base.a_ //기본 클래스의 필드
using System; class A { public int a_ = 3; } class B : A { new public int a_ = 100; public void print() { Console.WriteLine("A 클래스의 a는 " + base.a_); } } class C { public static void Main() { B b_ = new B(); b_.print(); } }#결과
A 클래스의 a는 3
참고 서적> 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 함수 | 푸딩뱃살 | 2372 | 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 |
99 | [C#] override와 new | 푸딩뱃살 | 3237 | 2015.05.14 01:34 |
98 | [C#] 다형성 | 푸딩뱃살 | 2585 | 2015.05.08 15:42 |
97 | [C#] 인터페이스 상속 | 푸딩뱃살 | 2646 | 2015.05.08 14:35 |
96 | [C#] 인터페이스 (Interface) | 푸딩뱃살 | 2578 | 2015.05.07 23:52 |
95 | [C#] 추상 클래스 | 푸딩뱃살 | 3302 | 2015.05.07 22:45 |
94 | [Python] 랜덤 패스워드 생성 | 푸딩뱃살 | 4288 | 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 | 푸딩뱃살 | 2789 | 2015.03.05 15:41 |
90 | [C#] 참조 전달 ref와 값 전달 out | 푸딩뱃살 | 6871 | 2015.02.26 00:10 |
89 | [VisualStudio] Visual Studio Express 2013 Windows Desktop 설치 | 푸딩뱃살 | 2992 | 2015.02.17 03:12 |
88 | [C#] 구조체 | 푸딩뱃살 | 3628 | 2015.01.07 14:17 |
87 | [C#] 오버라이드 (override) | 푸딩뱃살 | 4253 | 2014.11.21 02:17 |
>> | [C#] 이름의 은폐 new | 푸딩뱃살 | 3416 | 2014.11.21 02:13 |