码迷,mamicode.com
首页 > 编程语言 > 详细

Java内部类的继承

时间:2018-06-08 17:27:50      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:技术分享   rgs   图片   problem   []   zed   new   nts   bsp   

《Thinking in Java》说:

Because the inner-class constructor must attach to a reference of the enclosing class object,
things are slightly complicated when you inherit from an inner class. The problem is that the
"secret" reference to the enclosing class object must be initialized, and yet in the derived class
there’s no longer a default object to attach to. 

 

package com.zywj;

class A {
    class B{
        B(String s) {
            System.out.println(s);
        }
    }
}

public class App extends A.B {
    App(A a) {
        a.super("hello");
    }
    public static void main(String[] args) {
        A a = new A();
        App app = new App(a);
    }
}

 

这里的a.super("hello");  有点不好理解。我一开始以为是对象a的super对象。

其实是(对象A).(对象B)("hello"),因为App是继承A.B的,所以在这里的super是指向B的。

IDEA告诉了我们:

技术分享图片

 

Java内部类的继承

标签:技术分享   rgs   图片   problem   []   zed   new   nts   bsp   

原文地址:https://www.cnblogs.com/zywj/p/9156399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!