2012-11-24 45 views
1

如果我有Person類將處理所有的公共屬性基地和派生類

Person.cs 

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

現在我需要對不同類型的球員(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類中定義的所有屬性? 謝謝

回答

3

這是創建基類和派生類的正確方法。因爲您的類Basketball繼承自Player,它繼承自Person,因此Basketball確實可以訪問標記爲publicprotectedPerson中定義的所有內容。任何標記爲private的東西都不會被繼承類訪問。同時請記住,在許多結構(如字段和方法)的情況下,缺少訪問修飾符將默認爲private訪問級別。

2

因爲你的屬性都是public,而不僅僅是從Person獲得,同時訪問獲取和設置屬性的值。

你可以考慮做二傳手privateprotected,在

public Personality Personality { get; protected set; } 

關鍵字protected的意思是「從包含類和從包含類派生類只能訪問」。另一方面,private的意思是「只從包含的類/結構訪問」。