1. 程式人生 > >C#父類強制轉換成子類,子類隱式轉換成父類

C#父類強制轉換成子類,子類隱式轉換成父類

即Person p = new Student();  這種情況下可以把P物件強制轉換。

你可能會問  這樣就是建立的一個student物件 我幹嘛不用student去建立? 這時候就是面向物件的程式設計的理解了。

比如:我的一個方法的引數需要傳入一個學生,那麼你只能傳入一個student ,可是如果我的引數可以傳入一個人person  ,那麼我傳進去一個學生student,或者穿進去一個老師teacher 都可以。

void Sing(Student s){.........}//這樣一個方法你只能傳進去一個學生物件說明這個學生怎麼唱歌。。。如果要想要老師唱歌呢?

void Sing(Person p){.....}//這樣的話 我可以傳進去一個人學生,老師,工人等等,


你還問什麼情況需要我轉換

我們假設只有學生可以讀書(微博)

那麼void Reading(Studeng s){.....}、、你只能給他一個學生的引數,但是我現在手裡的引數只有一個人Person p = new Person();可是這個引數我們不能穿進去啊,應為我們只知道他是一個人,而是什麼人我們不知道,我們需要這個人是學生的時候才可以使用,那麼當p = new Student() 這時候我們明確的知道他是一個人還是一個學生。所以我們就可以把他轉換成學生放到引數裡面。reading(studeng(p)); 當你明確知道這個父類物件的子類型別,確必須使用這個子類型別的時候,你就可以把他強制轉換。