... | ... | @@ -124,7 +124,7 @@ class Computer : IKeyboard, IMouse // 다중 상속 가능 |
|
|
* **클래스**는 다중 상속이 불가능하지만, **인터페이스**는 다중 상속을 허용한다.
|
|
|
|
|
|
### **상속**
|
|
|
**상속(Inheritance)**은 기존 클래스에서 이미 정의된 것들을 다른 클래스에서 사용하거나, 추가 또는 재정의할 수 있도록 한 것이다. 여기서 기존 클래스는 *기반(Based) 클래스*라고 하고, 상속받은 다른 클래스는 *파생(Derived) 클래스*라고 부른다. *파생 클래스*는 하나의 기반 클래스만 상속 받을 수 있으며, *파생 클래스*가 다른 클래스의 *기반 클래스*가 될 수도 있다. C#에서는 `base` 키워드를 사용하여 *기반 클래스*의 생성자나 Method를 호출할 수 있다.
|
|
|
**상속(Inheritance)**은 기존 클래스에서 이미 정의된 것들을 다른 클래스에서 사용하거나, 추가 또는 재정의할 수 있도록 한 것이다. 여기서 기존 클래스는 *기반(Base) 클래스*라고 하고, 상속받은 다른 클래스는 *파생(Derived) 클래스*라고 부른다. *파생 클래스*는 하나의 기반 클래스만 상속 받을 수 있으며, *파생 클래스*가 다른 클래스의 *기반 클래스*가 될 수도 있다. C#에서는 `base` 키워드를 사용하여 *기반 클래스*의 생성자나 Method를 호출할 수 있다.
|
|
|
|
|
|
```
|
|
|
class BaseClass
|
... | ... | @@ -141,7 +141,7 @@ class DerivedClass : BaseClass |
|
|
{
|
|
|
private int b;
|
|
|
|
|
|
public void DerivedClass(string a, int age) : base(a)
|
|
|
public DerivedClass(string a, int b) : base(a)
|
|
|
{
|
|
|
this.b = b;
|
|
|
}
|
... | ... | @@ -288,12 +288,12 @@ class Person |
|
|
public string name
|
|
|
{
|
|
|
get { return _name; }
|
|
|
set { _name; = value; }
|
|
|
set { _name = value; }
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
```
|
|
|
Person person;
|
|
|
Person person = new Person();
|
|
|
person.name = "Novo";
|
|
|
Console.WriteLine(person.name); // 출력 결과 : Novo
|
|
|
```
|
... | ... | @@ -315,20 +315,20 @@ class Person |
|
|
// Project.model.cs
|
|
|
partial class Project
|
|
|
{
|
|
|
public void Model();
|
|
|
public void Model() { };
|
|
|
}
|
|
|
```
|
|
|
```
|
|
|
// Project.view.cs
|
|
|
partial class Project
|
|
|
{
|
|
|
public void View();
|
|
|
public void View() { };
|
|
|
}
|
|
|
```
|
|
|
```
|
|
|
// Project.controller.cs
|
|
|
public partial class Project
|
|
|
partial class Project
|
|
|
{
|
|
|
public void Controller();
|
|
|
public void Controller() { };
|
|
|
}
|
|
|
``` |
|
|
\ No newline at end of file |