我在寫一個簡單的程序來理解繼承。遺傳缺失定義
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
public enum AnimalType
{
Dog = 0,
Cat = 1
}
class Program
{
static void Main(string[] args)
{
Dog dog = new Dog();
dog.printAnimal();
}
}
class Animal
{
public string AnimalName;
public AnimalType AnimalType;
public Animal()
{
SetAnimalName ("");
SetAnimalType (AnimalType.Dog);
}
public Animal (string animalName, AnimalType animalType)
{
SetAnimalName (animalName);
SetAnimalType (animalType);
}
public virtual void PrintAnimal()
{
Console.WriteLine("Animal::PrintAnimal -> this function should not get called");
}
private void SetAnimalName (string animalName)
{
this.AnimalName = animalName;
}
private void SetAnimalType (AnimalType animalType)
{
this.AnimalType = animalType;
}
}
class Dog : Animal
{
public Dog()
{
base.Animal("Doggy", AnimalType.Dog);
}
public override void PrintAnimal()
{
Console.WriteLine("Bark");
}
}
class Cat : Animal
{
public Cat()
{
base.Animal("Kitty", AnimalType.Cat);
}
public override void PrintAnimal()
{
Console.WriteLine("Meow");
}
}
}
我發現了以下錯誤:
錯誤1「ConsoleApplication1.Dog」不包含關於「printAnimal」和沒有擴展方法的定義「printAnimal」接受類型的第一個參數C:\ Users \ hk \ documents \ visual studio 2013 \ Projects \ ConsoleApplication1 \ ConsoleApplication1 \ Program.cs 24 ConsoleApplication1
可能發現'ConsoleApplication1.Dog'(您是否缺少使用指令或程序集引用?錯誤2'ConsoleApplication1.Animal不包含定義f或Animal C:\ Users \ hk \ documents \ visual studio 2013 \ Projects \ ConsoleApplication1 \ ConsoleApplication1 \ Program.cs 65 18 ConsoleApplication1
錯誤3 ConsoleApplication1.Animal不包含'Animal'C:\ Users \ hk \ documents \ visual studio 2013 \ Projects \ ConsoleApplication1 \ ConsoleApplication1 \ Program.cs 78 18 ConsoleApplication1
我創建了一個名爲animal的基類;狗和貓繼承動物。 不應該它狗和貓默認所有的動物定義,因爲他們繼承動物?
大/小寫問題 –
'dog.printAnimal()'應該是'dog.PrintAnimal()'' – lastr2d2
公共枚舉AnimalType'爲什麼你需要跟蹤的是什麼類型的動物?該類型告訴你。 'if(myAnimalVariable is Dog)Console.WriteLine(「Hello,this is dog。」);'如果我想申報自己的動物,該怎麼辦?現在我得到了保護(沒有雙關語意思),因爲我無法更新您的枚舉。 –