【Java】第9章 接口
1.包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。
2.接口允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。接口只提供了形式,而未提供任何具体实现。
3.interface的访问权限设置和类的一样。
4.在接口中定义的方法和域都默认为public,不能声明为private。
5.toString()方法是根类Object的一部分。
6.创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式。这类方法包含所要执行的算法中固定不变的部分,而“策略”包含变化的部分。策略就是传递进去的参数对象。
7.适配器设计模式。适配器中的代码将接受你所拥有的接口,并产生你所需要的接口。
8.Java的多重继承。当将一个具体类和多个接口组合到一起时,这个具体类必须放在前面,后面跟着的才是接口。
9.使用接口的核心原因:
- 为了能够向上转型为多个基类型。
- 与使用抽象基类相同,防止客户端程序员创建该类的对象,并确保这仅仅是建立一个接口。
10.如果要创建不带任何方法定义和成员变量的基类,那么就应该选择接口而不是抽象类。事实上,如果知道某事物应该成为一个基类,那么第一选择应该是使它成为一个接口。
11.Java中对象的创建要用到new关键字,其他时候的声明的只是一个引用而已。
12.在打算这组合的不同接口中使用相同的方法名通常会造成代码可读性的混乱,请尽量避免这种情况。
13.通过使用interface关键字提供的伪多重继承,要用到关键字extends。在这种方式宏,我们可以在任何现有类之上添加新的接口。所以这意味着让方法接受接口类型,是一种让任何类都可以对该方法进行适配的方式。这就是使用接口而不是类的强大之处。
14.放入接口中的任何域都是自动static和final的,所以在Java SE5之前,接口就成为了一种很便捷的用来创建常量组的工具。
15.在接口中定义的域不能为“空final”,但是可以被非常理表达式初始化。
16.实现一个private接口只是一种方式,它可以强制该接口中方法定义不要添加任何类型信息(也就是说,不允许向上转型)。
17.private接口不能在定义它的类之外被实现。
18.遵循某个接口的对象的典型方式就是工厂方法设计模式。
19.恰当的原则应该是优先选择类而不是接口。从类开始,如果接口的必需性变得非常明确,那么就进行重构。接口是一种重要的工具,但是他们容易被滥用。