看板 java 關於我們 聯絡資訊
今天意外發現Java的protected這個修飾是可以向上的 class Parent { public Parent() { } public Children createChildren(){ return new Children(); } } class Children extends Parent { protected Children() { } protected String say() { return "I am Children"; } } main(){ Parent parent=new Parent(); Children child=parent.createChildren(); System.out.println(child.say()); } 像這樣一段程式碼竟然可以跑 但是這樣一段架構的程式碼在C++ 還是C#都是不合法的 後來看了一下網路說明 protected好像只要同個packge 就算不是同個繼承下的依然可以呼叫的樣子 但是這樣不會失去保護的作用嗎? 有沒有高手能幫忙解釋一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.196.154
weiyucsie:http://tinyurl.com/3g95e 也許是因為同package吧 05/03 16:03
neigence:parent裡面有child的指標或物件 本來就天理不容= = 05/04 15:10