抽象方法和 类 C#

Abstract Method and Classes C#

我正在尝试编写一个基于抽象方法的代码和 类 在 C# 中,但我无法弄清楚为什么我的代码不起作用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication16
{
    abstract class ICTcampus
    {
        public int addNumbers(int number1, int number2)
        {
            return number1 + number2;
        }

        public abstract void multiplyNumbers(int number1, int number2)
        {

        }

        public class Derivedclass : ICTcampus
        {
            public override int multiplyNumbers(int number1, int number2)
            {
                return number1 * number2;
            }
        }

        class Program
        {
            static void Main(string[] args)
            {

                Derivedclass obj = new Derivedclass();
                int add = obj.addNumbers(2, 3);
                Console.Write(" addition is :{0}", add);
                // Console.Write(" multiplication is :{0}", obj.multiplyNumbers(2, 3));

            }
        }
    }
}

这是因为你的 multiplynumber 函数不应该是抽象的,而是虚拟的。如果你想让它抽象,那么你应该删除括号并删除它的空实现

工作代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication16
{
    public abstract class ICTcampus
    {
        public int addNumbers(int number1, int number2)
        {
            return number1 + number2;
        }

        public abstract int multiplyNumbers(int number1, int number2);

    }
    public class Derivedclass : ICTcampus
    {
        public override int multiplyNumbers(int number1, int number2)
        {
            return number1 * number2;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

            Derivedclass obj = new Derivedclass();
            int add = obj.addNumbers(2, 3);
            Console.Write(" addition is :{0}", add);
            // Console.Write(" multiplication is :{0}", obj.multiplyNumbers(2, 3));

        }
    }

}