相关疑难解决方法(0)

继承时无法访问受保护的内部类

阅读"Thinking in Java",我坚持参加ex:6 of Inner Classes章节.


练习6:(2)在自己的包中创建一个至少包含一个方法的接口.在单独的包中创建一个类.添加一个实现接口的受保护内部类.在第三个包中,继承自您的类,并在方法内部返回受保护内部类的对象,在返回期间向上转换为接口.


这是我的代码:

IOne.java

接口

package intfpack;
public interface IOne{
        void    f();
}
Run Code Online (Sandbox Code Playgroud)

COne.java

具有实现接口的受保护内部类的类

package classpack;
import intfpack.*;
public class COne{
        protected class Inner implements IOne{
                public void f(){System.out.println("Inner class of COne");}
        } 
}
Run Code Online (Sandbox Code Playgroud)

CTwo.java

从具有受保护内部类的类继承

package thirdpack;
import classpack.*;
import intfpack.*;

public class CTwo extends COne{
        public IOne getInner(){
                IOne io = new Inner(); 
                return io;
        }
        public static void main(String[] args){
                CTwo ct = new CTwo();
                ct.getInner();
        }
}
Run Code Online (Sandbox Code Playgroud)

Copmiler说下:

javac CTwo.java …
Run Code Online (Sandbox Code Playgroud)

java inner-classes

13
推荐指数
2
解决办法
8282
查看次数

标签 统计

inner-classes ×1

java ×1