第八章 接口与内部类

一、接口

  1、一种更纯粹的abstract class

  2、多重继承

二、多接口继承

  1、尽量避免出现同名方法或属性

  2、接口之间可以使用继承来扩充

三、产生常量群

  1、接口中的所有数据成员都会自动转换为是static和final,并自动舍为public

四、接口数据成员的初始化

五、嵌套的接口

  1、将接口嵌套于某个class中:和非嵌套接口一样

  2、将接口嵌套于接口中:所有接口都必须是public,无法声明为private

六、内部类

  1、内部类可以使用private等修饰词,可以完全不被外部类看见,不为任何人所用

  2、向上转型为父类,尤其是interface时,就能突现内部类的好处,你所得到的只是指向父类或接口的一个引用而已
  3、匿名的内部类:return new ClassName(){};产生某个匿名class对象,此一匿名Class继承自声明的型别类,new传回的引用会被自动向上转型为该类。匿名类中不能拥有构造方法,所以通常会调用super(),并在数据成员定义处执行初始化动作;若你定义了某个匿名内部类,并且希望用到定义于匿名类之外的某个对象,编译器会限制该外部对象必须为final。

  4、位于方法或局部之内的内部类:Class会和其他class一起被编译出来,不过它在所处的作用域范围之外就无法使用

  5、内部类可以访问外围所有成员,因为内部类必须记录一个引用,指向外部类的某个特定对象

  6、静态内部类:无法访问外部类成员,因为不需要指向外部类对象的引用,可以代替main方法测试class

  7、必须使用外部类对象产生内部对象类(除非你已拥有一个外部类对象,否则无法产生内部类对象,静态内部类除外)
  8、多层嵌套内部类

  9、继承内部类:语法类似创建内部类对象(outer.new inner();)初始化时使用iuter.super(),保证outer的初始化

  10、内部类的标识符:$

  11、内部类存在的价值:内部类允许你继承多个类(多个内部类),多重继承的实现方案

  12、"事件驱动"方式的应用程序框架,如GUI,大量采用内部类

七、总结

  虽然对于接口的用途、功能等有了一个较为全面的认知,但对接口的确切使用时机,还需做大量的实践来积累经验。本章用了大量的篇幅阐述内部类,我也比较深刻的的了解了内部类的各种功用及其基本语法,也了解了它的存在价值,但要正真的理解内部类,还需做大量的实践(平时见到的内部类并不多,书中提到GUI程序库中使用了大量的内部类,以后有空研究研究)。
All rights reserved please indicate the source if reprint---吓尿了的大肥鼠
原文地址:https://www.cnblogs.com/realsoul/p/5691193.html