萌新有个关于内部类的问题,求各位大佬解答,非常感谢

[复制链接]
查看11 | 回复6 | 2021-1-27 06:32:08 | 显示全部楼层 |阅读模式
关于内部类的一个小问题,OutInterfaceoutinter=out.doit();这行代码是什么意思,定义一个outinter变量,给他赋值一个变量的方法,看不太懂。
还有最下面return那一行,是什么意思为什么要用returnnew为什么不能直接InnerClass(“****”),看的头好晕搞不懂内部类,为什么doit()方法要用OutInterface,几个白痴问题,谢谢大佬来解答
packagecom.lzw;
interfaceOutInterface{
publicvoidf();
}
publicclassInterfacelnner{
publicstaticvoidmain(String[]args){
//TODO自动生成的方法存根
OuterClass2out=newOuterClass2();
OutInterfaceoutinter=out.doit();
outinter.f();
}
}
classOuterClass2{
privateclassInnerClassimplementsOutInterface{
InnerClass(Strings){
System.out.println(s);
}
publicvoidf(){
System.out.println("访问内部类中的方法f()");
}
}
publicOutInterfacedoit(){;
returnnewInnerClass("访问内部构造方法");
}
}
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:32:08 | 显示全部楼层
啥都不懂。。说了你也不懂


回复

使用道具 举报

千问 | 2021-1-27 06:32:08 | 显示全部楼层
引用1楼pany1209的回复:啥都不懂。。说了你也不懂



好吧我还是慢慢学吧
回复

使用道具 举报

千问 | 2021-1-27 06:32:08 | 显示全部楼层
OutInterfaceoutinter=out.doit();
表示的是实际创建的是一个InnerClass类的对象,但是被上转型(如果还没有学到或者没有认真学这内容的话,你可以简单的理解为子类对象强制类型转化为父类)了,也就是说outinter这个变量引用实际指向的是一个InnerClass对象,但是只能访问OutInterface所具有的属性和方法,但是执行的效果是子类对象的方法,比如如果调用outinter.f(),实际输出为访问内部类中的方法f()
回复

使用道具 举报

千问 | 2021-1-27 06:32:08 | 显示全部楼层
慢慢学,慢慢理解,一口气吃不了大胖子
回复

使用道具 举报

千问 | 2021-1-27 06:32:08 | 显示全部楼层
doit()方法返回的是OutInterface类型,然后左边是OutInterface类型,有什么问题吗?左边和右边一样你有什么好问的?


回复

使用道具 举报

千问 | 2021-1-27 06:32:08 | 显示全部楼层
publicclassInterfacelnner{
publicstaticvoidmain(String[]args){
//TODO自动生成的方法存根
OuterClass2out=newOuterClass2();
OutInterfaceoutinter=out.doit();
//创建一个变量outinter,然后执行OuterClass2类(out对象)中的doit方法,
//doit方法返回一个newInnerClass()对象,然后把这个返回的对象复制给outinter
outinter.f();
}
}
classOuterClass2{
privateclassInnerClassimplementsOutInterface{
InnerClass(Strings){
System.out.println(s);
}
publicvoidf(){
System.out.println("访问内部类中的方法f()");
}
}
publicOutInterfacedoit(){
//return是返回的意思,就是上面调用这个doit方法,这个方法就会返回一个newInnerClass();
//newInnerClass()就是创建了InnerClass这个类的一个对象
returnnewInnerClass("访问内部构造方法");
}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行