C# 키워드 abstract 상세 정보
5176 단어 c#
abstract class ShapesClass
{
abstract public int Area();
}
class Square : ShapesClass
{
int x, y;
public override int Area()
{
return x * y;
}
}
추상류의 특성: 1. 추상류는 실례화할 수 없다.2. 추상 클래스는 추상적인 방법과 추상적인 접근기를 포함할 수 있다.3. sealed(C# 참조) 수식자로 추상류를 수정할 수 없다. 이것은 추상류가 계승될 수 없다는 것을 의미한다.4. 추상 클래스에서 파생된 비추상 클래스는 계승된 모든 추상 방법과 추상 접근기의 실제 실현을 포함해야 한다.
2. abstract 수식의 방법은 추상적인 방법이다.
추상적 방법의 특성: 1. 추상적 방법은 은식의 허법이다.2. 추상 클래스에서만 추상적인 방법으로 설명할 수 있다.3. 추상적인 방법 성명은 실제적인 실현을 제공하지 않기 때문에 방법체가 없다.방법은 단지 하나의 분호로 끝났을 뿐이고 서명한 후에 큰 괄호가 없습니다 ({}).예를 들면 다음과 같습니다.
public abstract void MyMethod();
4. 재작성 방법이 제공하는 것을 실현한다. 이 재작성 방법은 비추상적인 구성원이다.5, 추상적인 방법 설명에서static이나virtual 수식자를 사용하는 것은 잘못된 것입니다.
3. abstract 수식의 속성은 추상적인 속성이다.추상적 속성의 특성: 1. 정적 속성에 abstract 수식자를 사용하는 것은 잘못된 것입니다.2. 파생류에서 오버라이드 수식자를 사용하는 속성 성명을 포함하여 추상적인 계승 속성을 다시 쓸 수 있다.
4. 보충: 추상류는 모든 인터페이스 구성원에게 실현을 제공해야 한다.인터페이스를 실현하는 추상류는 인터페이스 방법을 추상적인 방법에 비출 수 있다.예를 들면 다음과 같습니다.
interface I
{
void M();
}
abstract class C: I
{
public abstract void M();
}
다음 예에서 DerivedClass 클래스는 추상적인 클래스인 BaseClass에서 파생된 것이다.추상 클래스에는 추상적인 방법인 AbstractMethod와 두 개의 추상 속성 X와 Y가 포함되어 있습니다.
// abstract_keyword.cs
// Abstract Classes
using System;
abstract class BaseClass // Abstract class
{
protected int _x = 100;
protected int _y = 150;
public abstract void AbstractMethod(); // Abstract method
public abstract int X { get; }
public abstract int Y { get; }
}
class DerivedClass : BaseClass
{
public override void AbstractMethod()
{
_x++;
_y++;
}
public override int X // overriding property
{
get
{
return _x + 10;
}
}
public override int Y // overriding property
{
get
{
return _y + 10;
}
}
static void Main()
{
DerivedClass o = new DerivedClass();
o.AbstractMethod();
Console.WriteLine("x = {0}, y = {1}", o.X, o.Y);
}
}
출력: x = 111, y = 161
위의 예제에서 다음 문을 사용하여 추상 클래스를 인스턴스화하려는 경우
BaseClass bc = new BaseClass(); // Error
컴파일러가 추상 클래스'BaseClass'의 실례를 만들 수 없다는 오류가 발생합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.