Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 인터페이스 상속
- 형식변환
- 추상 프로퍼티
- 가변배열
- 인터페이스의 프로퍼티
- System.Array
- 메소드숨기기
- 오버라이딩
- 이것이C#이다
- 클래스
- 무명형식
- this 키워드
- 자동구현프로퍼티
- 분할 클래스
- is
- 클래스 연습문제
- 중첩클래스
- 튜플
- 배열초기화
- 접근 한정자
- 일반화 클래스
- 인터페이스 예제
- 컬렉션 초기화
- base()
- as
- 프로퍼티와 생성자
- 인덱서
- 배열
- 프로퍼티
- c#
Archives
- Today
- Total
제로의영역
9.6 인터페이스의 프로퍼티 본문
* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.
* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.
1. 인터페이스는 메소드뿐만 아니라 프로퍼티와 인덱서도 가질 수 있음.
2. 프로퍼티나 인텍서를 가진 인터페이스를 상속하는 클래스가 "반드시" 해당 프로퍼티와 인덱서를 구현해야 함.
3. 인터페이스의 프로퍼티 선언이 클래스의 자동 구현 프로퍼티 선언과 모습이 동일.
interface 인터페이스 이름
{
public 형식 프로퍼티이름1
{
get; set;
}
public 형식 프로퍼티이름2
{
get; set;
}
//...
}
< 인터페이스의 프로퍼티 선언 형식 >
interface IProduct
{
string ProductName
{
get;
set;
}
}
class Product:IProduct
{
private string productName;
public string ProductName
{
get{retrun productName;}
set{productName = value;}
}
}
< 인터페이스와 이를 상속하는 파생클래스의 예 >
예제)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ex8._9
{
interface INamedValue //인터페이스
{
string Name /* 자동구현 프로퍼티처럼 구현이 없지만, C#컴파일러는
인터페이스의 프로퍼티에 대해서는 자동으로 구현해주지 않음.
(인터페이스는 구현부가 없기 때문) */
{
get;
set;
}
string Value
{
get;
set;
}
}
class NamedValue:INamedValue /* INamedValue 인터페이스를 상속하는 NamedValue 클래스는
반드시 Name과 Value를 구현해야 함. 자동 구현 프로퍼티를
이용하는 것도 가능. */
{
public string Name // 인터페이스의 Name을 구현한 자동구현 프로퍼티
{
get;
set;
}
public string Value // 인터페이스의 Value를 구현한 자동구현 프로퍼티
{
get;
set;
}
}
class MainProgram
{
static void Main(string[] args)
{
NamedValue name = new NamedValue()
{ Name = "이름", Value = "박상현" };
NamedValue height = new NamedValue()
{ Name = "키", Value = "177Cm" };
NamedValue weight = new NamedValue()
{ Name = "몸무게", Value = "90Kg" };
Console.WriteLine($"{name.Name}:{name.Value}");
Console.WriteLine($"{height.Name}:{height.Value}");
Console.WriteLine($"{weight.Name}:{weight.Value}");
}
}
}
실행 결과:
이름:박상현
키:177Cm
몸무게:90Kg
'C#' 카테고리의 다른 글
10.1 All for one, one for all (배열) (0) | 2019.07.31 |
---|---|
9.7 추상 클래스와 프로퍼티(추상 프로퍼티) (0) | 2019.07.29 |
9.5 무명 형식(Anonymous Type) (0) | 2019.07.03 |
9.4 프로퍼티와 생성자 (0) | 2019.07.03 |
9장 프로퍼티-3.자동구현 프로퍼티 (0) | 2019.06.28 |