Java基础知识回顾(三)

Java接口,内部类、局部内部类、静态内部类、匿名内部类的使用,Java序列化。

接口(interface)

在接口中,所有的方法为公开、抽象的方法(public,abstract 关键字不写也会默认如此);
在接口中,所有的属性都是公开、静态的常量(public static final);
接口与接口之间可以多继承,使用extends,对个之间用逗号隔开。
接口中没有构造方法,也没有main方法,不能用new来实例化一个接口,但可以声明一个接口;
todo:code example

接口的实现:

关键字implements,一个类实现一个接口必须实现接口中所有的方法,否则其为抽象类,并且在实现类的方法上要加public(不能省略)。
类的默认修饰符:default;接口的默认修饰符:pubic
一个类除了继承另一个类外(只能继承一个类),还可以实现多个接口。
todo:code example

接口的作用:

间接实现多继承:用接口来实现多继承并不会增加关系的复杂度。因为接口不是类,是在类的基础上进行再次抽象。
接口可以抽象出次要类型,分出主、次关系类型,复合看世界的一般方法
接口隔离,与封装性有关。一个对象有多个方面,可以只展示其中几个方面,其他的都隐藏。因此可以看为“更高层次的封装”,把一个大的接口做成若干个小接口。
通过接口制定标准(最重要的作用)
接口:制定标准
接口的调用者:使用标准
接口的实现类:实现标准
解耦合作用:把使用标准和实现标准分开,使得标准的制定者和实现者解除耦合关系,具有极强的可移植性。
如sun公司提供一套访问数据库的接口(标准),java程序员访问数据库时针对数据库接口编程。接口由各个数据库厂商负责实现。

接口编程的原则:

尽量针对接口编程,能用接口就尽量用接口;
接口隔离原则,用若干个小接口取代一个大接口。

##内部类
定义:内部类是指在一个类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在。内部类可以为静态的可用protected和private修饰,而外部类只能用public和缺省的包访问权限。有以下几种:成员内部类、局部内部类、静态内部类、匿名内部类。