JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:請問修飾子protected 和 (default) [Re:item1394]
ajyi





發文: 55
積分: 1
於 2004-12-03 15:49 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
去翻了舊程式,看看以前遇到的問題,發現還是無解也不知道為什麼 Black Eye
以簡單的內容表達大致如下:

多了protected inner class的Super Class - A.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package pa;
public class A{
  int i=1;
  protected int j=2;
  void defaultMethod(){
    System.out.println("default method in Class A.");
  }
  protected void protectedMethod(){
    System.out.println("protected method in Class A,");
  }
  protected class InnerClass{
    public InnerClass(){
      System.out.println("public constructor in inner class of class A.");
    }
    public void publicMethod(){
      System.out.println("public method in inner class of class A.");
    }
    void defaultMethod(){
      System.out.println("default method in inner class of class A.");
    }
    protected void protectedMethod(){
      System.out.println("protected method in inner class of class A.");
    }
  }
}


Sub Class in the same package - B.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package pa;
public class B extends A{
  public static void main(String[] args){
    B b = new B();
    b.defaultMethod();
    b.protectedMethod();
    b.test();
  }
  void test(){
    protectedMethod();
    B.InnerClass innerObj = new B.InnerClass();
    innerObj.publicMethod();
    innerObj.defaultMethod();
    innerObj.protectedMethod();
  }
}

編譯執行都正常

Sub Class in the different package - C.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package pb;
import pa.A;
public class C extends A{
  public static void main(String[] args){
    C c = new C();
    //c.defaultMethod();
    c.protectedMethod();
    c.test();
  }
  void test(){
    protectedMethod();
    C.InnerClass innerObj = new C.InnerClass();
    innerObj.publicMethod();
    //innerObj.defaultMethod();   <==預期內的編譯錯誤
    innerObj.protectedMethod();
  }
}

編譯時發生錯誤
1
2
3
C.java:15: protectedMethod() has protected access in pa.A.InnerClass
                innerObj.protectedMethod();
                        ^

請問這是怎麼回事呢?
是不是C繼承A,也同時繼承了A的protected inner class,所以可以使用C.InnerClass,但是因為C不是繼承A的inner class,所以無法使用inner class中的protected method呢?


ajyi edited on 2004-12-03 15:53
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
28574 [精華] 請問修飾子protected 和 (default) item1394 87 2003-10-07 21:50
27379 Re:請問修飾子proteceted 和 (default) Kent_tseng 1149 2003-10-08 17:52
15353 Re:請問修飾子proteceted 和 (default) rivalhw 1245 2006-02-17 09:02
26812 Re:請問修飾子proteceted 和 (default) mojo 63 2004-02-16 17:33
24284 Re:請問修飾子protected 和 (default) kpeter6 24 2004-09-19 19:05
21516 Re:請問修飾子protected 和 (default) mover 133 2004-11-26 20:32
21506 Re:請問修飾子protected 和 (default) ajyi 1287 2004-12-02 16:43
21330 Re:請問修飾子protected 和 (default) ajyi 793 2004-12-02 17:03
21619 Re:請問修飾子protected 和 (default) ajyi 2956 2004-12-03 15:49
27116 Re:請問修飾子proteceted 和 (default) item1394 26 2003-10-11 17:53
26901 Re:請問修飾子proteceted 和 (default) magicfish 65 2003-10-11 23:04
26454 Re:請問修飾子proteceted 和 (default) mojo 453 2004-02-16 17:10
26385 Re:請問修飾子proteceted 和 (default) yengceng 488 2004-05-21 20:05
26278 Re:請問修飾子proteceted 和 (default) yingssu 183 2004-05-21 21:16
24940 Re:請問修飾子proteceted 和 (default) tree671025 949 2004-09-03 15:41
24409 Re:請問修飾子proteceted 和 (default) Yoshi 158 2004-09-04 08:16
24712 Re:請問修飾子proteceted 和 (default) tree671025 179 2004-09-04 10:54
26975 Re:請問修飾子proteceted 和 (default) frank 1083 2003-10-12 00:35
26835 Re:請問修飾子proteceted 和 (default) anthonychen 123 2003-10-12 00:45
27051 Re:請問修飾子proteceted 和 (default) Duncan 285 2003-12-08 23:47
26670 Re:請問修飾子proteceted 和 (default) item1394 264 2003-12-08 23:52
26646 Re:請問修飾子proteceted 和 (default) Duncan 745 2003-12-09 00:33
26619 Re:請問修飾子proteceted 和 (default) item1394 363 2003-12-09 01:06
26411 Re:請問修飾子proteceted 和 (default) tomato 734 2004-02-15 19:45
27035 Re:請問修飾子proteceted 和 (default) metavige 182 2003-12-09 09:22
26793 Re:請問修飾子proteceted 和 (default) item1394 1039 2003-12-05 01:35
26697 Re:請問修飾子proteceted 和 (default) Duncan 258 2003-12-06 02:04
26678 Re:請問修飾子proteceted 和 (default) item1394 273 2003-12-06 10:15
27295 Re:請問修飾子proteceted 和 (default) Duncan 954 2003-12-06 17:15
26820 Re:請問修飾子proteceted 和 (default) qop 1274 2003-12-05 12:39
26738 Re:請問修飾子proteceted 和 (default) item1394 240 2003-12-05 23:15
26708 Re:請問修飾子proteceted 和 (default) qop 334 2003-12-05 23:49
26680 Re:請問修飾子proteceted 和 (default) item1394 140 2003-12-06 00:22
26721 Re:請問修飾子proteceted 和 (default) qop 324 2003-12-06 01:18
26715 Re:請問修飾子proteceted 和 (default) item1394 771 2003-12-06 09:54
26672 Re:請問修飾子proteceted 和 (default) qop 622 2003-12-06 11:33
26678 Re:請問修飾子proteceted 和 (default) item1394 472 2003-12-06 12:36
26689 Re:請問修飾子proteceted 和 (default) qop 447 2003-12-06 18:19
26619 Re:請問修飾子proteceted 和 (default) item1394 595 2003-12-08 22:49
26593 Re:請問修飾子proteceted 和 (default) Yoshi 314 2003-12-09 01:16
26993 Re:請問修飾子proteceted 和 (default) Duncan 333 2003-12-09 10:22
26622 Re:請問修飾子proteceted 和 (default) UndeadJ 361 2003-12-09 18:01
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8