2013-02-19 65 views
-1

爲什麼我不能撥打protectedMethod()即使是父類調用其方法的對象?訪問受保護的Java中的其他包裝

package packageA; 

public class Parent{ 
    protected void protectedMethod(){ 
    System.out.println("Hello Parent"); 
    } 
} 

,並在另一個包:

package packageB; 
import packageA.Parent; 

Public Class Child extends Parent{ 
    public static void main(String[] args) { 
     Parent parent = new Parent(); 
     parent.protectedMethod(); //illegal 
     Child child = new Child(); 
     child.protectedMethod(); // legal  
    } 
} 
+1

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html – 2013-02-19 04:12:57

+3

我真的不明白爲什麼人們會花時間降低某人的問題並指責他們「重複」其他問題。爲什麼不花時間解決他的具體問題? – 2013-02-19 04:20:17

+0

即時通訊對不起,重複的問題。我只是混淆了爲什麼它不能調用方法本身。感謝所有回覆我 – user2085628 2013-02-19 04:25:37

回答

1

你的子類可以它自己的父調用protectedMethod()上,而不是創建任何獨立父對象。

所以,super.protectedMethod()將是合法的,但這似乎並不是你所需要的。如果你想創建一個Child對象來調用Parent對象上的方法,但不是它自己的父對象,那麼你將不得不聲明方法public。