我正在教自己的C#和有關從父對象的特定實例繼承的問題。
例如,如果我定義我的階級作爲階級:有從特定的父對象繼承的子對象
class League
{
public string name { get; set; }
}
class Player : League
{
public Guid PlayerGuid { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
class Team : Player
{
public Guid TeamGuid { get; set; }
public string TeamName { get; set; }
}
然後實例的階級作爲階級:
static void Main(string[] args)
{
League myLeague = new League() { name = "The League" };
Player taco = new Player() { PlayerGuid = Guid.NewGuid(), FirstName = "Taco", LastName = "MacArthur" };
Player pete = new Player() { PlayerGuid = Guid.NewGuid(), FirstName = "Pete", LastName = "Eckhart" };
Team tacoTeam = new Team() { TeamGuid = Guid.NewGuid(), TeamName = "Password is Taco" };
Team peteTeam = new Team() { TeamGuid = Guid.NewGuid(), TeamName = "3-Pete" };
}
如何確保團隊tacoTeam從球員塔科繼承和團隊peteTeam從繼承玩家皮特?
我的感覺是,我不知道如何正確定義這個類的類,並會讚賞一個指示器應該如何完成。
爲了闡明我已將「播放器」更改爲「所有者」的元素之間的關係,可以更好地表示我的想法。我可以進一步增加一個「玩家」類來代表真正的玩家,而不是扶手椅玩家。
與@neoistheone和@McGarnagle我能修改此輸入和定義的階級作爲階級:
class League
{
public string name { get; set; }
}
class Owner
{
public Guid OwnerGuid { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
class Team
{
public Guid TeamGuid { get; set; }
public string TeamName { get; set; }
public Owner TeamOwner { get; set; }
public League League { get; set; }
}
然後我可以創建類的實例,並得到什麼了出來這樣:
static void Main(string[] args)
{
League MyLeague = new League() { name = "The League" };
Owner taco = new Owner() { FirstName = "Taco", LastName = "MacArthur", OwnerGuid = Guid.NewGuid() };
Owner pete = new Owner() { FirstName = "Pete", LastName = "Eckhart", OwnerGuid = Guid.NewGuid() };
Team tacoTeam = new Team() { TeamGuid = Guid.NewGuid(), TeamName = "Password is Taco", League = MyLeague, TeamOwner = taco };
Team peteTeam = new Team() { TeamGuid = Guid.NewGuid(), TeamName = "3-Pete", League = MyLeague, TeamOwner = pete };
List<Team> Teams = new List<Team>();
Teams.Add(tacoTeam);
Teams.Add(peteTeam);
foreach(Team team in Teams){
Console.WriteLine("Team Name:\t{0}\nTeam Owner:\t{1}\nLeague Name:\t{2}\n-----",
team.TeamName, team.TeamOwner.FirstName + " " + team.TeamOwner.LastName, team.League.name);
}
Console.ReadLine();
}
這似乎做的幫助在我的代碼中的數據模型,使之更容易得到它進出數據庫的我正在去使用這個應用程序一個相當體面的工作。
繼承不涉及具體的對象實例。您提供的示例沒有意義,這些類不應該彼此繼承。此外,聯盟是直截了當的滑稽。 – Michael
我認爲你完全誤解了繼承是什麼...... –