상속(Inheritance)은 'Parent - Child(부모클래스 - 자식클래스)', 'Base - Derived(기본클래스 - 파생클래스)', 'Super class - Sub class' 로 부릅니다.
상속은 Parent class의 데이터를 Child class에서 불러올 수 있습니다. 그러나 Child class의 데이터를 Parent class에서 불러올 수 없습니다. 가져오면 짱구 아빠 얼굴처럼 프로그램이 경고와 오류가 있다합니다.
/*sealed*/ class Parent //sealed문은 봉인과 같음. 자식이든 뭐든 아무도 못 쓰도록 포장하는 문
{
public int parentA; //protected는 자식은 접근 되지만 외부는 접근할 수 없는 상속문. Program.cs에서 못다룸.
public int parentB;
public void ParentFunc()
{
Console.WriteLine("Parent Function Call!");
}
public Parent()
{
Console.WriteLine("Parent Constructor Call!");
}
~Parent()
{
Console.WriteLine("Parent Destructor Call!");
}
}
class Child : Parent
{
public int childC;
public Child()
{
Console.WriteLine("Child Constructor Call!");
}
~Child()
{
Console.WriteLine("Child Destructor Call!");
}
public void ChildFunc()
{
base.parentA = 10;
parentB = 20;
base.ParentFunc();
}
}
- sealed문: 해당 클래스를 봉인한다는 뜻과 같습니다. 아무도 접근 불가입니다.
- 변수 앞에 기입하는 접근 지정자에 따라 접근 권한을 설정할 수 있습니다.
- public: 모든 접근 허용, private: 모든 외부 접근 금지, protected : 자식은 접근 가능, 그러나 다른 문서에서 접근 불가.
- Child : Parent로 관계 설정.
<외부 접근>
class Program
{
static void InheritanceExample()
{
//Parent parent = new Parent();
Child child = new Child();
//child.parentA = 10;
child.ParentFunc();
}
static void Main()
{
//상속(Inheritance)
InheritanceExample();
GC.Collect();
Console.Read();
}
}
- InheritanceExample()은 새로운 Child class를 사용하는 child 변수를 생성합니다.
- child 변수는 ParentFunc()를 사용합니다.
- base.parentA = 10;
parentB = 20;
base.ParentFunc();
끝
'프로그래밍 C#언어' 카테고리의 다른 글
상속3 (0) | 2024.09.09 |
---|---|
상속2 (5) | 2024.09.05 |
String (문자열) (0) | 2024.08.30 |
구조체 (Structure) (1) | 2024.08.29 |
배열 (Array) (0) | 2024.08.29 |