關於引用型別轉化的一些東西
java中的引用其實就是我們看物件的角度而言;
例如,在繼承中;
new出一個子類物件,站在子類的角度看,當然全部可以看到,
但是站在父類的角度看,則只能看到父類的那部分;這個可以看記憶體圖了;
但是在記憶體分析中,
引用就是存放在棧中的一個變數,存放這它所指向物件的記憶體;
進入主題吧;
在繼承時的型別指向;
先記住引用指向,只能有兩種;
1;指向本身物件;
2;子類物件;
還記得上這個課的時候我還好大膽的質疑了這個,我知道子類引用指向父類物件是錯的,執行的時候會報錯,但是我還是提出了質疑,然後好尷尬的與老師對講了幾分鐘,在最後面還是老師提醒到了;
先說一下堅持我否認這個真理的理由吧?
先看一幅繼承的堆記憶體圖吧?
在堆記憶體中,子類是包含父類的,因此我覺得子類引用指向父類物件是可行的,因為子類是包含父類的,是否意味著子類的引用可以指向父類對像呢?因為子類引用是可以看到父類的成員的。
因此記憶體圖的解釋使我始終認為子類引用是可以指向父類物件的,
知道與;老師爭辯時,他說道java是物件導向的,是與現實社會掛鉤的,那麼就意味著這樣是不能的,看圖
但是要注意只要存在繼承關係,引用亂指都是可以通過編譯的,但是執行時就會出現錯誤;
相關文章
- 從String型別發散想到的一些東西型別
- 關於樹狀陣列一些有意思的東西陣列
- 關於 智慧指標的東西指標
- 近期做的一些東西
- 關於long型別的轉換型別
- TCP Socket一些東西TCP
- html入門的一些東西HTML
- 關於隱式資料型別轉換的一些試驗資料型別
- 關於 Gradle 依賴庫的幾個東西Gradle
- Cesium筆記----關於viewer的配置及常用東西筆記View
- PHPSTORM 相關東西PHPORM
- Activity啟動模式聯想到多程式相關的一些東西模式
- 關於C++引用的一些注意點C++
- Android,你要掌握的一些東西Android
- (ubuntu系列)一些必備好玩的東西Ubuntu
- C#變數型別(1):引用型別和值型別 (轉)變數型別
- 關於LLVM,這些東西你必須知道!LVM
- 引用型別型別
- 理解類引用這種型別 (轉)型別
- Go 的引用型別Go型別
- 關於Application型別的變數一些問題。APP型別變數
- 值型別與引用型別的區別型別
- 引用型別變數的強制轉換型別變數
- Java的基本型別和引用型別Java型別
- APP許可權相關的東西APP
- C#的型別——值型別與引用型別C#型別
- golang 在 runtime 中的一些騷東西Golang
- 值型別和引用型別型別
- JavaScript引用型別-Object型別JavaScript型別Object
- 值型別與引用型別型別
- 【關於Javascript】--- 隱式型別轉換篇JavaScript型別
- js引用型別JS型別
- javascript:引用型別JavaScript型別
- 關於java的引用和c++的區別JavaC++
- JavaScript的原生引用型別JavaScript型別
- 10,函式和方法相關的東西函式
- JavaScript值型別和引用型別JavaScript型別
- c#:值型別&引用型別C#型別