Я создал в своем «основном» методе «пятно» объекта моего базового класса - это 4 свойства, конструктор класса «Животное» и функция «SaySomething». Мой объект «пятно» передает свои параметры конструктору класса «Animal» для инициализации. Кроме того, я создал производный класс «Собака», который наследует свойства базового класса «Животные» и метод, и я создал объект «grover» в моем «основном» методе, и когда я пытаюсь получить доступ с помощью моего ' grover ', метод «SaySomething», который был унаследован, моя программа выдает исключение: «ConsoleApplication1.Animal» не содержит конструктор, который принимает 0 аргументов, когда я пытаюсь запустить программу.Мой класс C#, который может наследовать свойства и функции базового класса, но генерирует исключение
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Animal
{
public double height { get; set; }
public double weight { get; set; }
public string sound { get; set; }
public string name { get; set; }
public Animal(double height, double weight, string name, string sound)
{
this.height = height;
this.weight = weight;
this.name = name;
this.sound = sound;
}
public void SaySomething()
{
Console.WriteLine("{0} is {1} inches tall, weighs {2} lbs and likes to say {3}", name, height, weight, sound);
}
}
class Dog : Animal
{
}
class Program
{
static void Main(string[] args)
{
Animal spot = new Animal(16,10,"spot","woof");
Dog grover = new Dog();
grover.SaySomething();
}
}
}
Я понимаю, что мне нужно удалить параметры и аргументы класса конструктора и аргументы, которые программа могла выполнить. Но что не так с этим кодом? почему моя программа не может работать? И нужно выбрать другой способ инициализации или можно улучшить этот код для работы?
Это не должно даже компилироваться. У Animal нет конструктора без параметров, поэтому класс Dog должен вызывать этот конструктор из собственного конструктора. – Silvermind
@Silvermind не компилируется. ОП неправильно идентифицирует это как «исключение». –