Я вставив следующий код:Почему абстрактный метод не выполняется в следующем коде?
abstract public class test
{
abstract public void add(int a, int b);
}
class Program : test
{
public void add(decimal a, decimal b)
{
decimal c = a + b;
Console.WriteLine("Decimal Addition : {0}", c);
}
public override void add(int a, int b)
{
int c = a + b;
Console.WriteLine("Addition : {0} ", c);
}
static void Main(string[] args)
{
Program obj = new Program();
obj.add(10, 111);
Console.ReadLine();
}
}
Я не могу понять, почему выше Абстрактный класс не выполняется? приведенный выше код работает отлично, что также дает выход. Мой вопрос даже после переопределения абстрактного метода в классе программы еще при вызове метода add(), почему выполняется не абстрактный метод, а абстрактный метод - нет?
Кроме того, если я изменить программу:
abstract public class test
{
abstract public void add(int a, int b);
}
class Program : test
{
public void add(decimal a, decimal b)
{
decimal c = a + b;
Console.WriteLine("Decimal Addition : {0}", c);
}
public override void add(int a, int b)
{
int c = a + b;
Console.WriteLine("Addition : {0} ", c);
}
static void Main(string[] args)
{
test obj = new Program();
obj.add(10, 111);
Console.ReadLine();
}
}
Тогда мой абстрактный метод выполнения и дает мне желаемого результата. Пожалуйста, объясните кого-нибудь. что на самом деле происходит в строке ниже. Я знаю, это очень простой вопрос, но я немного смущен здесь. пожалуйста помоги ! Заранее спасибо.
test obj = new Program();
Что именно происходит иначе, чем вы ожидаете? – Blorgbeard
Что вы можете задать здесь? –
, как указано выше, также вы не используете свой абстрактный класс. Возможно, вы хотите выполнить «test obj = new Program();», который создаст новую программу, но сохранит ее как «тест» –