找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
發表文章前請先閱讀相關版規尊貴會員無限觀看附件圖片搞笑、娛樂、精彩的影片讓你看

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]青春之箱06-

[繁]戰國妖狐27-

[繁]七龍珠大魔05-

[繁]魔王2099 04-

[繁]妖怪學校的菜鳥老

[繁]再見龍生,你好人
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4262|回復: 7
打印上一主題下一主題

[問題][求助]請問一個關於繼承-遮蔽的問題[已解決][複製鏈接]

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
跳轉到指定樓層
樓主
發表於 2018-11-14 04:11 PM|只看該作者|倒序瀏覽
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
本帖最後由 ahway9988 於 2018-11-16 02:35 PM 編輯

我想用多形方法以父類去取得子類的成員變數,若不使用方法去取得子類成員變數,是不是就沒有別的方法去取得了嗎?
求大大們解惑QQ


以下例子因為發帖似乎被告知出現敏感字眼,於是用圖片方式呈現,不便見諒orz)


...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
分享分享0收藏收藏0支持支持0
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

Rank: 1

帖子
174
積分
181 點
潛水值
7450 米
頭香
發表於 2018-11-15 01:41 AM|只看該作者
你可以強制把父類別轉型成子類別,但是這樣就失去多型的意義了。
  1. System.out.println(((PlanetBase.BedRoom)bases[0]).file);
複製代碼
你現在的寫法,看起來有點像是,為了過編譯器的檢查而硬寫出來的。譬如說 bedroom 跟 restaurant 可以變成 static class,也不需要放在 PlanetBase 裡面。但這部分就離題了,暫且不談。

多型目的就是希望其他部分的邏輯,只要針對父類別去寫程式就好,盡量忘記子類別的存在。所以才會在父類別訂出抽象方法,由子類別實作。如果你希望在程式中直接存取到子類別的成員,亦即,程式要能夠察覺到子類別的存在,並確定某一個 instance 就剛剛好是那個子類別。

在這種情況下,我們會使用強制轉型 cast。但是對於 Java 這種強型別的語言,使用強制轉型就是在削弱 Java 的優勢,所以實務上會盡量避免 cast。
...
瀏覽完整內容,請先 註冊登入會員
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
3471
積分
3977 點
潛水值
64720 米
3
發表於 2018-11-15 12:46 PM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
個人認為這其實是 design pattern 的問題,也就是當你嘗試這麼做的時候,這麼做帶來的優點應該要符合你的目的。

通常我們使用封裝技巧時,就是想要隱藏細節,所以原則上會這麼做的目的應該要是隱藏 bedroom 和 restaurant 的 file 相關操作細節。也就是說在這個前提之上,本來就不應該存在想要直接存取 file 變數的需求,因為那就是使用這種 design pattern 時意圖想藏起來的目標。反過來說,如果真的有意想讓外部 class 直接存取 file 變數,那麼一開始就不應該採取這種 design pattern 了。...
瀏覽完整內容,請先 註冊登入會員
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
4
發表於 2018-11-16 09:48 AM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
本帖最後由 ahway9988 於 2018-11-16 09:51 AM 編輯
codewice 發表於 2018-11-15 01:41 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

你可以強制把父類別轉型成子類別,但是這樣就失去多型的意義了。你現在的寫法,看起來有點像是,為了過編譯 ...
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
5
發表於 2018-11-16 09:52 AM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
kwj 發表於 2018-11-15 12:46 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

個人認為這其實是 design pattern 的問題,也就是當你嘗試這麼做的時候,這麼做帶來的優點應該要符合你的目 ...

嗯 沒錯 是我設計模式的問題 ,當初 那些類是test的,所以為了偷一點懶這樣做XD
...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
3471
積分
3977 點
潛水值
64720 米
6
發表於 2018-11-16 11:02 AM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
本帖最後由 kwj 於 2018-11-16 11:04 AM 編輯
ahway9988 發表於 2018-11-16 09:52 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

嗯 沒錯 是我設計模式的問題 ,當初 那些類是test的,所以為了偷一點懶這樣做XD
因為感覺直接存取 比跟 再 ...
...
瀏覽完整內容,請先 註冊登入會員
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
7
發表於 2018-11-16 11:46 AM|只看該作者
kwj 發表於 2018-11-16 11:02 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

這要回歸到 design pattern 的原意了。

舉例來說,「十年經驗與一年經驗的程序員的區別」這篇文章不知道 ...

感謝大大的解惑,我又多懂了一些概念了QQ
...
瀏覽完整內容,請先 註冊登入會員
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

Rank: 1

帖子
174
積分
181 點
潛水值
7450 米
8
發表於 2018-11-17 11:21 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
本帖最後由 codewice 於 2018-11-20 08:31 AM 編輯
ahway9988 發表於 2018-11-16 09:48 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

靜態方法 ,我懂了,先前沒想到,因為是想讓相類似的東西放在同一頁面裡,所以刻意弄出個PlanetBase
強制轉型  ...
...
瀏覽完整內容,請先 註冊登入會員

點評

ahway9988 收到,感謝用心的大大orz  發表於 2018-11-26 12:12 AM
ahway9988 深入淺出 有聽說過了 評價還不錯 ,但我還是買了 最新關唸的java8 ,我想 有機會再弄一本來互補 應該也有一點加分XD  發表於 2018-11-18 09:31 AM
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部