상속 protected 접근
//상속 protected 접근
class Base
{
public bool publicVar = true;
protected bool protectedVar = true;
public void PublicWrite()
{
Console.WriteLine("PublicWrite : {0}", publicVar);
}
protected void ProtectedWrite()
{
Console.WriteLine("ProtectedWrite : {0}", protectedVar);
}
}
class Derived : Base
{
public void PublicWrite2()
{
Console.WriteLine("PublicWrite : {0}", publicVar);
}
public void ProtectedWrite2()
{
ProtectedWrite(); //부모의 protected함수에 접근
Console.WriteLine("ProtectedWrite : {0}", protectedVar);
}
}
class Program
{
static void Main(string[] args)
{
Base baseObj = new Base();
Derived derived = new Derived();
Console.WriteLine("부모 public 접근 : {0}", baseObj.publicVar);
//Console.WriteLine("부모 protected 접근 : {0}", baseObj.protectedVar); // 에러
Console.WriteLine("자식 public 접근 : {0}", derived.publicVar);
//Console.WriteLine("자식 protected 접근 : {0}", derived.protectedVar); // 에러
baseObj.PublicWrite();
//baseObj.ProtectedWrite(); //에러
derived.PublicWrite(); //자식으로 선언한 변수로 부모 함수(public) 접근
//derived.ProtectedWrite(); //에러
derived.PublicWrite2();
derived.ProtectedWrite2();
}
}
//================================================================
//protected변수, 함수는 자식만 직접 접근이 가능함을 기억하자. (c/c++/java 공통적인 기본 사항이다.)
//다른 class에서 사용하고자 한다면 자식에 public으로 접근 가능하게 우회하여야 한다.
//================================================================
'공부 > C#' 카테고리의 다른 글
함수 주석 /// (0) | 2016.05.08 |
---|---|
상속 가상 함수 선언 (0) | 2016.05.08 |
상속 정의 (0) | 2016.05.06 |
class 변수 선언 - get, set (0) | 2016.05.06 |
Console Color (0) | 2016.05.04 |
//class MyClass2 : public MyClass1 //c++ 상속
class MyClass2 : MyClass1 //무조건 public 상속만 가능하며 하나만 가능하다.
{
}
//제가 하는 포스팅은 보통 c++과 c# 차이에 대한 것만 적지 개념을 따로 정리하지 않습니다.
'공부 > C#' 카테고리의 다른 글
상속 가상 함수 선언 (0) | 2016.05.08 |
---|---|
상속 protected 접근 (0) | 2016.05.08 |
class 변수 선언 - get, set (0) | 2016.05.06 |
Console Color (0) | 2016.05.04 |
시간 측정 Stopwatch (0) | 2016.05.04 |
class 변수 선언 - get, set
//아래는 c++의 사용 방법
// int x = 0; //안붙이면 private:
//public:
// int i = 1;
// int j = 2;
//C#에서는 각각 붙여줘야 함
public int i = 1;
protected int j = 2;
int k = 3; // 안붙이면 private
private int l = 4;
/*
//c++에서는 아래와 같이 별도로 Get함수와 Set함수를 만들었었다.
public int GetK()
{
return k;
}
public void SetK(int num)
{
k = num;
}
*/
public int L //변수가 소문자면 get/set을 위한 함수는 보통 같은 글자의 대문자로 사용한다.
{
//겟셋
get { return this.l; }
set //값을 넣을 때 별도의 처리가 가능하다
{
if(value < 0)
{
this.l = 0;
}
else if(value > 100)
{
this.l = 100;
}
else
{
this.l = value; //value는 별도로 지정하는 것이 아니라 값을 자동으로 받아온다.
}
}
/*
//set이 없으면 읽기 전용
get { return this.l; }
// set { this.l = value; }
*/
}
'공부 > C#' 카테고리의 다른 글
상속 protected 접근 (0) | 2016.05.08 |
---|---|
상속 정의 (0) | 2016.05.06 |
Console Color (0) | 2016.05.04 |
시간 측정 Stopwatch (0) | 2016.05.04 |
반복문 (0) | 2016.05.04 |