假設多邊形是我們的基類,廣場是我們的派生類,我們希望做一個派生類像這樣的實例:爲什麼我們在使用派生類型的實例時傳遞值?
Polygon polygon = new Square(4.5f);
上面的例子是從一本書,說「有可能是實際使用派生類型,如廣場的一個實例,但只知道它是一個多邊形」
現在我的問題是:
1中的情況下派生類可能是一個基類?我的意思是,在計算機將派生類作爲基類而不知道它的情況下,或者這不是我們的意圖。
2 - 爲什麼我們應該通過像「4.5F」與派生類,爲什麼我們不能像對待,當我們進行正常類,並用實例的值:
Polygon polygon = new Square();
第一部分可能回答C#6.0袖珍參考,由約瑟夫阿爾巴哈利&本阿爾巴哈利
對不起HTTPS:/ /stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface。第二部分大概是「因爲Square構造函數有一個float參數」 - 它根本與派生類無關。如果'Foo'沒有無參數的構造函數(或只有可選參數或參數數組的構造函數......),那麼你不能使用'new Foo()', –
謝謝,我稍後會讀它,但是你確定它與界面有關嗎?我沒有得到第二部分的答案,爲什麼我們應該傳遞一個像4.5那樣的常量值而不是數據類型爲「int numbers」的變量? –
這是一樣的原理,只需要基類而不是接口。是的,你*已經得到了第二部分的答案,但是你沒有詢問關於常量和變量的問題......可以在那裏傳遞一個「float」變量而不是常量。 –