상속은 C#의 기본 구성 요소입니다. 패러다임은 다형성의 형태로, 특히 인터페이스를 통해 더 쉽게 이해할 수 있습니다. C#에서는 둘 이상의 클래스에서 상속받을 수 없지만 여러 인터페이스를 상속 할 수 있습니다.
우리는 다음을 구축 할 것입니다 개념 이해하기 :
public interface IColor
{
void WriteColor();
}
은 위의 모든 논리를 구현하지 않습니다, 그것은 의도의 선언 역할을합니다. 그래서 우리는 지금 수업을 쓸 것입니다. 당신이 구현할 때
public class Rectangle : IColor
{
public void WriteColor() => Console.WriteLine("Red");
}
public class Circle : IColor
{
public void WriteColor() => Console.WriteLine("Blue");
}
, 당신은 당신의 사각형 또는 원 개체를 만들 때, 당신은 방법
WriteColor
를 호출 할 수 있습니다. 그러나, 당신은 동일한 방법 이름을 가지고 있지만 그것들은 다릅니다. 이것은 다형성을 통해 이루어지며, 인터페이스를 통해 논리를 분리 할 수 있습니다. 따라서 두 가지 완전히 다른 구현이 있습니다.
다른 양식은 직접 클래스를 통해 전달되며, 이는 상속받는 방식에 따라 다른 용어를 만듭니다.
// Object:
public class ShapeColor
{
private string color;
public Color(string color) => this.color = color;
public string Color { get; } = color;
}
우리는 예를 들어, 모양 객체를 생성합니다 확장
: 당신이 모양을 통과 할 수 있도록 당신이 모양이 경우 기본 클래스는 색상을 필요로 개체를 호출하는 경우, 그래서
// Shape: Object (Sub Class)
// ShapeColor: Base Object (Base Class)
public class Shape : ShapeColor
{
private string shape;
public Shape(string shape, string color) : base(color)
{
this.shape = shape;
}
public string TypeOfShape { get; } = shape;
}
을 및 색상. 이를 더욱 확장하기 위해 이제 다음 객체를 만들 것입니다.
public class BuildShape : Shape
{
public void BuildRectangle()
{
var shape = new Shape("Rectangle", "Red");
Console.WriteLine(shape.TypeOfShape);
Console.WriteLine(shape.Color);
}
}
그래서 무엇입니까? BuildShape
은 모양 및 모양 색상에서 Google의 속성에 액세스 할 수 있습니다. 이유가 무엇입니까? 음, 모양 색상은 기본 클래스로 정의됩니다. 즉, 모양이 색상에 따라 달라집니다. 모양에서 상속받을 때 모양의 유형이 노출됩니다. 이는 다음으로 인한 것입니다.
- Shape 색상, Google Base 또는 Shape의 수퍼 클래스.
- 모양 모양 색상의 하위 클래스를 형성하지만 빌드 모양의 직접적인 상위 클래스.
위의 내용은 상속 순서를 나타냅니다. 당신이 혼동하는 경우, 우리는 설명하여 단순화 할 수 있습니다 :
자세한 내용은 here을 참조하십시오.
당신은 상속의 반대 의미가 있기 때문에. B가 A라는 사실은 A가 B라는 것을 의미하지 않습니다. –
[둘러보기]를 보면서 SO가 어떻게 해결되는지 알아보십시오. – Plutonix
'obj'는'A'에 대한 참조입니다. 'A'의 인스턴스 또는'A'의 서브 클래스의 인스턴스를 할당 할 수 있습니다. 따라서 그것이 가리키는 객체가 B 형이 될 것이라는 보장은 없습니다. 따라서 참조하는 객체의 'A'멤버 만 참조 할 수 있습니다. * A obj 앞에있는 'A'는 *를 의미합니다. 그것은 "나는이 물건이 'A'이고, 더 이상없고, 더 이상은 아닐 것이라고 약속한다. 어쩌면 그것은'B' 일 수도 있고,'C '라고 불리는'A'의 다른 하위 클래스 일 수도 있습니다 - 위의 것 중 하나 일 수 있습니다. 참조의 타입은'A'의 일종이라는 것을 보장합니다. –