【发布时间】:2015-10-25 09:34:49
【问题描述】:
abstract class Animal
{
public string DefaultMessage { get; set; }
public Animal()
{
Console.WriteLine("Animal Cstor called");
DefaultMessage = "Default Speak";
}
public virtual void Speak()
{
Console.WriteLine(DefaultMessage);
}
}
class Dog : Animal
{
public Dog()
: base()//base() redundant. There's an implicit call to base here.
{
Console.WriteLine("Dog cstror called");
}
public override void Speak()
{
Console.WriteLine("Custom Speak");//append new behavior
base.Speak();//Re-use base behavior too
}
}
否则
class Animal
{
public string DefaultMessage { get; set; }
public Animal()
{
Console.WriteLine("Animal Cstor called");
DefaultMessage = "Default Speak";
}
public virtual void Speak()
{
Console.WriteLine(DefaultMessage);
}
}
class Dog : Animal
{
public Dog()
: base()//base() redundant. There's an implicit call to base here.
{
Console.WriteLine("Dog cstror called");
}
public override void Speak()
{
Console.WriteLine("Custom Speak");//append new behavior
base.Speak();//Re-use base behavior too
}
}
- 抽象类构造函数和普通类构造函数有什么区别?
【问题讨论】:
-
自己做作业和让别人帮你做有什么区别?你明白你在问什么吗?
-
## CodeCaster DUDE ## 我从小就做作业,现在我站着问这个问题抽象类构造函数和普通类构造函数有什么区别?
-
是的,我可以阅读。区别在于一个是抽象的,另一个不是。你为什么想知道?这真的是你想知道的吗?你打算如何处理这些答案?如果这归结为“解释抽象在 C# 中的含义”,那就太宽泛了。
-
@COSNFUSING_CODER 不要使用大写字母!如果您还有其他问题,您应该提出一个新问题,并且您还需要将当前问题的一些给出的答案标记为适合您的答案。
-
请把帽子放在外面。在那个评论中你改变了你的问题,现在是“为什么我们使用抽象构造函数?”,这是一个不同的问题(之前已经回答过)。参见例如Can an abstract class have a constructor?。