内部类的继承
内部类也可以和其他普通类一样被继承,但是继承内部类比继承普通内部类要复杂一些,需要设置专门的语法来完成。
例:创建OutputInnerClass类,并创建Bird类(里面包含子类Yinwu),使OutputInnerClass类继承Yinwu类(Bird的子类)
package Innerclass;
public class Bird {
void fly(){
System.out.println("i believe i can fly...");
}
protected class Yinwu{
void speak(){
System.out.println("鹦鹉 can speak English");
}
}
}
import Innerclass.Bird;
public class OutputInnerClass extends Bird.Yinwu{
public OutputInnerClass(Bird bird){ /*带参数的构造方法,且该参数为需要继承内部类的外部类的引用,同时在构造方法体中使用bird.super()语句
这样才为继承提供了必要的对象应用。*/
bird.super(); //super()方法的作用是调用隐藏的构造方法
}
}
之所以要先实例化Bird类,是因为Java中规定了要有子类,必先有父类,所以要继承子类Yinwu,必须先实现Bird类。