Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 没有抽象方法实现的抽象派生类_C#_Abstract Class - Fatal编程技术网

C# 没有抽象方法实现的抽象派生类

C# 没有抽象方法实现的抽象派生类,c#,abstract-class,C#,Abstract Class,假设我有一个类: public abstract class BaseClass { internal abstract void Add(int i , int j); } public class Child : BaseClass { } 儿童班: public abstract class BaseClass { internal abstract void Add(int i , int j); } public class Child : BaseClass {

假设我有一个类:

public abstract class BaseClass
{
   internal abstract void Add(int i , int j);
}
public class Child : BaseClass
{

}
儿童班:

public abstract class BaseClass
{
   internal abstract void Add(int i , int j);
}
public class Child : BaseClass
{

}
当我从基类继承子类时,我应该在其中实现
Add()
方法 但我不想在这里实现Add方法,有可能吗?如果可能的话,我怎样才能做到呢


提前感谢

如果您不想在子类中实现Add函数,您也必须将子类声明为抽象。

如果您不想实现该方法,您可以执行以下操作:

  • 也将
    Child
    标记为摘要:

    public abstract class Child : BaseClass { }
    
  • 或者,使方法虚拟化:

    public abstract class BaseClass 
    {
        internal virtual void Add(int i , int j) { }
    }
    
  • 或者,重写该方法并使其虚拟:

    public abstract class Child : BaseClass
    {
        // Empty method does nothing; also could be overridden.
        internal override void Add(int i , int j) { } 
    }
    

  • Child
    是否应该是
    abstract
    ?为什么不将add方法改为virtual而不是abstract?如果不实现add,孩子也必须被标记为抽象@gradidarat我希望它是抽象的我闻到XY:你想实现什么?谢谢你的回答:)@user2176592你介意将问题标记为已回答吗?