10.8为什么需要内部类

tij原文
我们已经看到了许多描述内部类的语法和语义,但是这并不能回答“为什么需要内部类”这个问题。那么,Sun公司为什么会如此费心地增加这项基本的语言特性呢?

一般来说,内部类继承自某个类或实现某个接口,内部类的代码操作创建它的外围类的对象。所以可以认为内部类提供了某种进入其外围类的窗口。


内部类必须要回答的一个问题是:如果只是需要一个对接口的引用,为什么不通过外围类实现那个接口呢?

\color{red}{答案是:“如果这能满足需求,那么就应该这样做。”}


那么内部类实现一个接口与外围类实现这个接口有什么区别呢?

\color{red}{答案是:外围类不是总能享用到接口带来的方便,有时需要用到接口的实现。}


所以,使用内部类最吸引人的原因是?

\color{red}{答案是:每个内部类都能独立地继承自一个(接口的)实现,}
\color{red}{所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。}


个人理解

内部类可以实现多重继承。一个外围类可以包含多个内部类,每个内部类都可以去实现一个接口。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。