已采納回答 / 管理員
”不能將非靜態變量賦值給靜態變量“,這個一個標準的蠢貨級別定義,新手很容易因為這種被蠢貨總結的”經驗“失去了刨根問底的動力。原理:static為類加載的時候執行,發生在創建對象之前,此時非static可以理解為還未"出生"。而非static需要在創建對象的時候才可以使用。所以如果static的方法和屬性都不能調用非static,而反之可以。
2015-08-09
已采納回答 / AAnonymous
這就是多態父類引用變量引用子類時可以調用子類覆蓋的方法。舉個例子:假設有類Cat,類Dog,類Duck。。。他們都有一個繼承自父類Animal的方法eat(),各自覆蓋了這個方法,因為貓狗鴨吃相不同現在。我有另一類,里面有個方法處理各種動物的吃相all_eat()當然你可以這么寫<...code...>這樣寫是不是比較麻煩,如果類型有十幾個甚至更多呢所以用多態可以這么寫<...code...>
2015-08-09
已采納回答 / 管理員
a,放回值類型b,方法名c,參數類型及個數3個條件不知道誰總結的,但是這種垃圾貨誤導性非常強重寫的概念是建立在繼承之上,也就是說子類有自己的 和 父類的方法(可繼承的)所謂重寫就是子類方法的和父類的某個方法 外部相同(除了內部代碼完全一樣,編譯器無法區分)訪問修飾符的問題自己想想想。一個類可以同時出現這兩種嗎?public void m1();private void m1();
2015-08-07
已采納回答 / AAnonymous
@override表示覆蓋(Java里是這么叫么?)簡單來說,子類繼承父類或實現某各接口,我們可以重寫父類的某個方法,這就叫做覆蓋。其作用就是父類引用變量引用子類對象時可以調用子類覆蓋的方法,這就是多態(C++中是使用虛函數實現的)至于這個@Override寫不寫都可以,寫了的話,編譯的時候,編譯器會檢查下面的方法是否確實是對父類或接口方法的覆蓋,是則通過,不是則報錯。這個屬于Java注解類。具體可以參考Java注解類的內容
2015-08-05
已采納回答 / Linux_dong
存儲位置不同:靜態變量存儲在靜態區,非靜態變量多了,局部變量存在棧中,new 出來的存在堆中。使用的時候:靜態變量不需要考慮對象,直接用 class.變量名 就能引用。其他的變量使用基本要用class new 一個對象出來。學java還是先看看C吧,C能很清楚的讓你理解一些很基礎的東西
2015-08-03
已采納回答 / 慕萊塢2250471
Java的標準說法里面是沒有小類型(基類)跟大類型(導出類),Think in java所有章節對類的定義 只有導出類跟基類 ,嚴格的意義上來講,導出類 ?基類的關系是 is a 或者 is like a(is a kind of 意思導出類是基類的某一種),導出類可以重寫基類的方法 屬性 也可以擴展基類的方法,實際開發過程中 ?方法/屬性多不多 并不能定義 大類型 小類型,因為一個導出類很有可能只是重寫了一個基類的方法,這個時候導出類(你口中的大類)方法屬性就一定比基類多麼?你潛在需要關注的問題是類型 ...
2015-08-02