为什么要有内部类呢
学习一项东西有三个步骤:
1.是什么
2.怎么用
3.用来干什么
前两个我们不讲,百度上一大堆,我们来讲一讲第三个问题。
内部类的作用是什么?内部类被定义出来做什么用呢?
答案是要从语言的特性说起:java本没有多继承的特点,大概是觉得多继承在实现时会增加难度和复杂度。但是实现了多实现,可以实现多个接口。
内部类的出现使得java具有多重继承的能力。
内部类依附于外部类,在外部类之外不能够实例化内部类,因此在最外类(暂且称为最外类)里,每个内部类都可以继承一个父类,在每个外类都可以通过实例化内类来使用内类继承的父类的方法(有点绕),因而间接地实现了多继承,但是似乎并不能实现同时继承。
每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。
haole jieshu zaijian