2017-02-08 9 views
-3

私は抽象メソッドと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)); 

      } 
     } 
    } 
} 
+6

空の実装です削除する必要があります「働いていないが、」非常に良い問題の説明ではありません。実際の問題が何であるか説明してください。 –

+0

C#で 'abstract'メソッドはbody(' {} ')を持つことができません。 bodyを持つ関数を作成したい場合は、 'virtual'にする必要があります。 – FCin

+1

抄録にはコード体がありません...カッコを削除します。あなたのオーバーライドは、抽象抽象が無効のときにintを返します。 – Wheels73

答えて

2

の作業コード

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)); 

     } 
    } 

} 
2

あなたのmultiplynumber関数が抽象的ではなく仮想であるべきであるからです。あなたは抽象的にそれを残したいなら、あなたは括弧を削除し、それが

関連する問題