我想我可能會將C++與C#混合在一起,但我不明白爲什麼在這個C#代碼中它們重新調用超類base()。並非所有東西都已經繼承了嗎?如何調用與繼承不同的類的base()
class Animal
{
public double height{get;set;}
public Animal()
{
this.height=0;
}
class Dog:Animal
{
public string favFood{get;set;}
public Dog():base() //Why not just omit the base? Doesn't dog inherit already from Animal?
{
this.favFood="No favorite food";
}
}
}
你是對的。沒有必要明確地調用基礎構造函數。但是,如果'Animal'構造函數需要傳入參數,則可以通過像'base'這樣的調用來傳遞它們。 – itsme86
'base()'不會使它繼承某些東西 - 它只是鏈接到基類構造函數。在這種情況下,它不是必需的,但如果使用參數鏈接到構造函數,則需要。 –
你爲什麼不擺脫對':base()'的調用,看看會發生什麼? –