继承内部类时使用外部类对象.super()调用内部类的构造方法
今天在看《Java编程思想》的时候,看到了一个很特殊的语法,懵逼了半天――一个派生类继承自一个内部类,想要创建这个派生类的对象,首先得创建其父类的对象,也就是这个内部类,而调用内部类的构造方法创建其对象的语法,是 外部类对象.super(); 我们都知道,在Java当中,当我们创建一个类的对象时,在构造方法的第一行会默认的调用父类的构造方法,创建一个父类的对象,并用super关键字引用父类的对象。所以若一个类,它继承了一个内部类,那我们创建这个类的对象前,当然也必须创建一个其父类的对象,也就是这个内部类的对象。 但是,麻烦的是,对于内部类来说,有一个规则,那就是每个内部类的对象, 必定要绑定一个其外部类的对象 ,这就是在内部类中,能够调用外部类方法和操作外部类属性的原因。在我们平时创建内部类对象的时候,首先需要创建一个外部类对象,在使用 外部类对象.new 内部类() 语法来创建内部类对象,这时候内部类对象绑定的就是创建它的外部类对象。 所以,当我们有一个类,它继承自一个内部类的时,我们要创建它的对象,需要满足两个条件: 在创建对象前,要先创建好它的父类对象,也就是它继承的内部类对象; 想要创建内部类对象,你得先有这个内部类的外部类对象,以供他绑定; 于是出现了下面这种让人懵逼的代码: // 外部类 class Outer { // 内部类 class Inner { //