簡體   English   中英

基類和派生類

[英]base and derived classes

如果我有Person類,它將處理所有常見屬性

Person.cs

public class Person
{
   public FirstAndLastName {get; set;}
   public Health Health {get; set;}
   public Personality Personality {get; set;}
}

現在,我將需要Player對象,並且稍后需要使用不同類型的玩家(soccerPlayer,bballplayer等)。由於玩家是一個人,因此我可以使用這種方法

Player.cs
public class Player:Person
{
   public Sport Sport {get; set;}
}

現在,我想實現一些基於運動的球員特有的屬性,例如:在籃球小巷中或在足球中打排球(足球)。 你有照片。

Basketball.cs
public class Basketball:Player
{
   public int AlleyUpLevel {get; set;}
}

問題:這是創建基類和派生類的正確方法,我的籃球運動員是否應該可以訪問Person類中定義的所有屬性? 謝謝

這是創建基類和派生類的正確方法。 由於您的Basketball類繼承自Player類,而Player類又繼承自Person ,因此, Basketball確實可以訪問Person中定義的標記為publicprotected 任何標記為private東西都不能被繼承的類訪問。 還請記住,在許多構造(例如字段和方法)的情況下,缺少訪問修飾符將默認為private訪問級別。

由於您的財產都是public ,因此任何人 ,不僅是從Person派生的財產,都有權獲取和設置財產的價值。

您可以考慮將設置器設為privateprotected ,例如

public Personality Personality { get; protected set; }

關鍵字protected意思是“只能從包含的類和從包含的類派生的類進行訪問”。 另一方面, private表示“僅從包含的類/結構中訪問”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM