JavaRush /Java Blog /Random-TW /參考類型的擴展/縮小:不同的來源 - 不同的解釋
Core
等級 35
Екатеринбург

參考類型的擴展/縮小:不同的來源 - 不同的解釋

在 Random-TW 群組發布
午安. JavaRush 講座中疑似有錯誤。假設有一個Parent類別和一個繼承自它的Child類別。 假設有以下幾行程式碼: Parent parent = new Child; Child child = (Child) parent; 根據12 級課程的講座,第 1 課(1. 多態性和重寫),第 5 段)(類型轉換。 )第一行是縮小,第二行是擴展(在講座中,牛是父母,鯨魚是繼承人)但這不是真的。一切都恰恰相反。所描述內容的含義很清楚:在第一行中,我們建立了一個 Child 類型的對象,並將其使用僅限於 Parent 類別中描述的方法。但這是一種擴展,因此這種減少是隱含的。在第 10 級的附加資料中,有人說:您要連結的文字...
擴展意味著從更具體的類型轉移到不太具體的類型,即 從孩子到父母的轉變。在我們的範例中,從任何繼承人(Child、Child2)到父代(Parent)的轉換都是擴展,是到更通用類型的轉換。與原始類型的情況類似,這種轉換是由JVM 本身在必要時進行的,並且對開發人員來說是不可見的,也就是說,它不需要任何額外的工作,因為它總是成功:您始終可以存取從繼承者按其父代的類型。父級 p1=new 子級(); 父親 p2=new Child2(); 在這兩行中,Parent 類型的變數被分配了不同類型的值,這意味著發生了轉換。由於這是一個擴展,因此它是自動完成的並且總是成功的。
我的例子的第二行則相反,按照相同的方式添加。材料是一個縮小範圍,需要在括號中明確指示類型。而且在講座中它被解釋為擴展,這可能是錯誤的,請解釋一下。我不想對類型轉換有雙重衝突的看法。下面是講課的片段, 講座片段 之前的講課還是有錯誤的嫌疑,該寫在哪裡呢?我在常見問題中沒有找到它。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION