회원 로그인
|
오버라이드 (override)
오버라이드 (override)
기본 클래스의 메소드는 파생 클래스에서 덮어쓸 수 있다.
메소드의 오버라이드
override(오버라이드)란 상속한 메소드와 같은 이름, 같은 인수의 메소드를 작성하고 메소드를 덮어쓸 수 있는 것을 말한다. 반환 값의 형도 같아야 한다.
안녕히 가세요.
건강하세요!
속성의 오버라이드
속성도 오버라이드할 수 있지만 각각 이름, 인수, 반환 값의 형이 같아야 한다.
인덱서의 오버라이드
인덱서의 오버라이드도 속성과 같도록 한다.
#i가 3 이상인 경우 값을 배열에 대입하도록 덮어 쓰고 있다.
#3문자 만큼의 공백이 빈다.
___Word
참고 서적> c#이 보이는 그림책
기본 클래스의 메소드는 파생 클래스에서 덮어쓸 수 있다.
메소드의 오버라이드
override(오버라이드)란 상속한 메소드와 같은 이름, 같은 인수의 메소드를 작성하고 메소드를 덮어쓸 수 있는 것을 말한다. 반환 값의 형도 같아야 한다.
class Greeting { public virtual void bye() { //오버라이드 되는 메소드에는 virtual 키워드를 붙인다. Console.WriteLine("Good bye"); } } ...... Greeting greeting_ = new Greeting(); greeting_.bye(); ...... class Aisatsu : Greeting { public override void bye() { Console.WriteLine("안녕히 가세요."); } } ...... Aisatsu sisatsu_ = new Aisatsu(); aisatsu_.bye(); ......
//예 //override와 new 참고 using System; class Greeting { public virtual void bye() { Console.WriteLine("good bye."); } } class Aisatsu : Greeting { public override void bye() { Console.WriteLine("안녕히 가세요."); } public void cheer() { Console.WriteLine("건강하세요!"); } } class Owakare { public static void Main() { Aisatsu aisatsu_ = new Aisatsu(); aisatsu_.bye(); aisatsu_.cheer(); } }#결과
안녕히 가세요.
건강하세요!
속성의 오버라이드
속성도 오버라이드할 수 있지만 각각 이름, 인수, 반환 값의 형이 같아야 한다.
class Suisou1 { public int num_; public virtual int kingyoNum_ { get { return num_; } set { num_ = value; } } } class Suisou2 : Suisou1 { public overrid int kingyoNum_ { get { return num_; } set { if(value <= 4) num_ = value; } } } static void Main() { Suisou2 suisou2_ = new Suisou2(); suisou2_.kingyoNum_ = 7; Console.WriteLine("수조에 금붕어가" + suisou2_.kingyoNum_ + "마리"); ...... }
인덱서의 오버라이드
인덱서의 오버라이드도 속성과 같도록 한다.
//예 using System; class Word1 { public char_[] word = new char_[7]; public virtual char this[int i_] { get { return word[i_]; } set { if (i_ >= 0) word[i] = value; } } } class Word2 : Word1 { public override char this[int i_] { get { return word_[i_]; } set { if (i_ <= 3) word_[i_] = value; } } } class WordSample { static void Main() { Word2 word2_ = new Word2(); word2_[0] = 'k'; word2_[1] = 'e'; word2_[2] = 'y'; word2_[3] = 'w'; word2_[4] = 'o'; word2_[5] = 'r'; word2_[6] = 'd'; int i_; for (i_ = 0; i_ <= 6; i_++) { Console.WriteLine(word2_[i_]); } Console.Write("\n"); } }#결과
#i가 3 이상인 경우 값을 배열에 대입하도록 덮어 쓰고 있다.
#3문자 만큼의 공백이 빈다.
___Word
참고 서적> 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#] 추상 클래스 | 푸딩뱃살 | 3303 | 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 | 푸딩뱃살 | 6873 | 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 |
>> | [C#] 오버라이드 (override) | 푸딩뱃살 | 4254 | 2014.11.21 02:17 |
86 | [C#] 이름의 은폐 new | 푸딩뱃살 | 3416 | 2014.11.21 02:13 |