当前位置:  技术问答>java相关

这个protected的inner class错在哪里?

    来源: 互联网  发布时间:2015-09-15

    本文导语:  //p2C1.java package p2; public class C1 {   protected class C2 {     void fun1() {}   } } //T1.java import p2.*; public class T1 extends C1 {   C1.C2 fun2() { return new C1.C2(); } } 编译时总是说p2.C1.C2是protected class,但我觉得既然T1是...

//p2C1.java
package p2;
public class C1 {
  protected class C2 {
    void fun1() {}
  }
}
//T1.java
import p2.*;
public class T1 extends C1 {
  C1.C2 fun2() { return new C1.C2(); }
}
编译时总是说p2.C1.C2是protected class,但我觉得既然T1是继承自C1,那么C1中的protected inner class不是也可以被T1使用吗?如果想达到这段代码的效果,该怎么该?

|
package p2;
public class C1 {
  protected static class C2 {
    void fun1() {}
  }
}
//T1.java
import p2.*;
public class T1 extends C1 {
  C1.C2 fun2() { return new C1.C2(); }
}

|
package com;

public class C1
{
protected C2 getC2()
{
return new C2();
}
protected  class C2 
         {
  void fun1() {}
}
}
//T1.java
import com.*;
public class T1 extends C1
{
   C2 fun2() 
   {
   return this.getC2(); 
   }
}
根据java的语法Protected是不能在继承类中“访问“的。
Access outside of a package:
            Access Modifier            Inherited Accessible 
default (no modifier) No                       No 
Public                Yes                      Yes 
Protected             Yes                      No 
Private               No                       No

|
我觉得是 C1.C2 fun2() 中的C1.C2的问题,试问一个inner class怎么能成为一种type用来声明一个函数的返回值呢?
可以在外部定义一个和inner class一样的class来代替C1.C2作为fun2()返回值的类型试试看。
我在外面上的网,没有JDK,楼主试的结果告一声,谢谢。

|
好象放在一个文件里是可以的,就是这样,是可以的。
class C1
{
protected  class C2 
         {
  void fun1() {}
}
}
public class T1 extends C1
{
         C1.C2 fun2() { return new C1.C2(); }
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.lang.model.element枚举modifier的类成员方法: protected定义及介绍
  • 请问:protected的访问权限是怎样?
  • java命名空间java.lang.reflect类modifier的类成员方法: protected定义及介绍
  • 请教关于protected的访问控制
  • java 类修饰符(private,public和protected)所代表的权限
  • protected的方法和变量不是不能在类外访问马?
  • 不太理解protected的意思,请大虾帮忙解释一下。
  • 请那位给简单讲一下存取修饰符中中default的存取权限(相对于protected)
  • 关于protected modifier的一个疑问
  • 一道protected小问题???!!!在线等!!!!!!
  • 请教大家,有关protected隐藏的一个小问题!
  • 继承一个protected函数,怎样在子类中让它完成父类的功能
  • 请教real mode 和protected mode ,谁能仔细讲讲?
  • 关于private和protected
  • 为什么我无法使用一个类的protected方法。
  • 类A为什么从外包继承一个protected成员后,类A的子类为什么不能访问这个成员
  • NOSQL iis7站长之家
  • protected 与 package 的存取权限怎么在我看来是一样的?
  • 跨包之间访问protected类型的问题
  • 基于Java protected的深入理解
  • 关于类basic_ostream的构造函数被申明成protected


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3