我正在学习 OOP,并且对下面的代码到底发生了什么有疑问。
我有一个经典的Dog
Animal
例子。Dog
继承Animal
.
public class Animal
{
public string Name { get; set; }
public virtual string Speak()
{
return "Animal Speak";
}
public string Hungry()
{
return this.Speak();
}
}
public class Dog : Animal
{
public override string Speak()
{
return "Dog Speak";
}
public string Fetch()
{
return "Fetch";
}
}
这两个问题都基于此作业:Animal a = new Dog();
- 当我声明一个
Animal
并将其设置为Dog
引用时实际发生了什么。有没有具体的术语? - 当我打电话
a.Hungry()
时,输出是“狗说话”。如果输出是“Dog Speak”,为什么我不能打电话a.Fetch()
?这里发生的事情的术语是什么?
任何有关特定主题的帮助和进一步阅读将不胜感激。