회원 로그인
|
추상 클래스
추상 클래스
처리를 명시하지 않고 호출한 쪽만 정의한 메소드를 추상 메소드라 한다. 추상 메소드를 가진 클래스를 추상 클래스라 한다.
추상 클래스로 만들어진 클래스는 인스턴스 생성할 수가 없다. 하지만 상속하여 추상 메소드를 오버라이드하여 사용할 수 있다. 또한 추상 클래스에는 추상 메소드와 일반 메소드를 혼용하여 사용할 수 있다.
추상 메소드와 추상 클래스의 정의
추상 메소드, 추상 클래스는 abstract(애브스트랙트) 수식자를 사용하여 다음과 같이 정의한다.
추상 클래스의 이용
추상 클래스를 상속하여 객체를 생성하려면 다음과 같이 override를 붙인 멤버를 준비한다.
37+33=70
참고 서적> c#이 보이는 그림책
처리를 명시하지 않고 호출한 쪽만 정의한 메소드를 추상 메소드라 한다. 추상 메소드를 가진 클래스를 추상 클래스라 한다.
추상 클래스로 만들어진 클래스는 인스턴스 생성할 수가 없다. 하지만 상속하여 추상 메소드를 오버라이드하여 사용할 수 있다. 또한 추상 클래스에는 추상 메소드와 일반 메소드를 혼용하여 사용할 수 있다.
추상 메소드와 추상 클래스의 정의
추상 메소드, 추상 클래스는 abstract(애브스트랙트) 수식자를 사용하여 다음과 같이 정의한다.
abstract class Animal { //추상 클래스, Animal 클래스명 public string name; public abstract void cry(); //void 반환 값의 형, cry() 메소드명 static void move() { ...... } }
추상 클래스의 이용
추상 클래스를 상속하여 객체를 생성하려면 다음과 같이 override를 붙인 멤버를 준비한다.
abstract class Animal { public abstract void cry(); ...... } class Dog:Animal { public override void cry() { //추상 메소드의 오버라이드 Console.WriteLine("Bowwow"); } ...... }
//예제 using System; abstract class CalcA { public int a; public int b; public abstract void answer(); public void setData(int m, int n) { a = m; b = n; } } class Plus : CalcA { public override void answer() { Console.WriteLine(a + "+" + b + "=" + (a + b)); } } class Abstract { static void Main() { Plus plus = new Plus(); plus.setData(37, 33); plus.answer(); } }결과
37+33=70
참고 서적> 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 |
>> | [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 |
87 | [C#] 오버라이드 (override) | 푸딩뱃살 | 4253 | 2014.11.21 02:17 |
86 | [C#] 이름의 은폐 new | 푸딩뱃살 | 3416 | 2014.11.21 02:13 |