상속 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 |