이 질문에는 이미 답변이 있습니다.
나는 추상적 인 클래스 A를 가지고 있고 그것은 가상 메소드가 부분적으로 구현되어 있고 클래스 B에서 상속된다. 파생 클래스에서 가상 메소드를 구현하고 싶다. 어떻게 파생 클래스에서 기본 구현을 얻어야 할까? 예를 들어.
public abstract class A
{
public int Sum { set; get; }
public virtual void add(int a, int b)
{
Sum = a + b;
}
}
class B : A
{
public override void add(int a, int b)
{
// what should i write here
}
}
가상 메소드를 오버라이드 (override)하면 (자), 디폴트의 (기본) 구현을 오버라이드 (override) 해, 새로운 것으로 대체합니다. 그러나 가상 메서드에 대한 재정의 된 구현을 제공하지 않으면 자동으로 기본 구현을 가져옵니다. 따라서 귀하의 질문에 대한 답변은 간단합니다.그 (것)들을 무시하지 말라.add
처음부터:
class B : A {}
그러나 기본 구현을 유지해야하지만 확장하려는 경우 기본 구현을 명시 적으로 파생 클래스에서 호출 할 수 있습니다.base
예어. 예 :
class B : A
{
public override void add(int a, int b)
{
base.add(a, b);
DoSomethingElse();
}
}
public abstract class A
{
public int Sum { set; get; }
public virtual void add(int a, int b)
{
Sum = a + b;
}
}
class B : A
{
public override void add(int a, int b)
{
//do your sufff
//call base method of class A
base.add(a, b);
}
}
간단히 기본 클래스 함수를 호출하십시오.
class B : A
{
public override void add(int a, int b)
{
// do operation related to derived class
// call your base function
base.add(a, b);
}
}