第9章 接口

  • 9.1 抽象类和抽象方法
    1. 抽象类可以没有任何抽象方法,但是包含一个或多个抽象方法的类必须被限定为抽象的。
    2. 抽象类不能实例化。
    3. 如果从一个抽象类继承,并想创建该新类的对象,那么必须为基类中的所有抽象方法提供定义。如果不这么做,那么导出类也是抽象类,并且必须用abstract修饰。
  • 9.2 接口
    1. interface是一个完全抽象的类,只提供了形式,不会提供任何具体实现。
    2. 接口中的所有方法都是public的,实现接口的类中定义的相应方法也必须是public的;接口中的域都被隐式的定义成static和final的。
    3. 将一个导出类向上转型为普通类、抽象类或者是接口,都不会有问题。
  • 9.2 完全解耦
    1. 如果一个方法操作的是类(参数),那么只能使用这个类或者是子类。这样的设计耦合性比较高,例如两个基类,一个Processor,一个Filter,它们内部的方法都一样,但是如果某个方法操作的是Processor,就不能传递Filter的子类进去。
    2. 策略设计模式:方法包含所要执行的算法中固定不变的部分,而“策略”包含变化的部分。例如process(Processor p, Object s),这里Processor就是一个策略。
    3. 适配器模式:适配器中的代码接受已有的接口,并产生所需要的接口(自己加代码)。

方法操作的是类:

方法操作的是接口:

适配器:

  • 9.4 Java中的多重继承
    1. Java中只能继承一个类,但是可以实现多个接口,并且可以向上转型成每个接口,因为每个接口都是一个独立类型。
    2. 使用接口的核心原因:1.为了能够向上转型成多个基类型(以及由此而带来的灵活性);2.防止客户端程序员创建该类的对象。
  • 9.5 通过继承来扩展接口
    1. 通过继承可以很容易的在接口添加新的方法声明,还可以通过继承在新的接口中组合多个接口(只允许用在接口继承中)。

  • 9.6 适配接口
    1. 接口最吸引人的原因之一就是允许同一个接口具有多个不同的具体实现。在简单的情况中,它的体现形式通常是一个接口接口类型的方法,而该接口的实现和向该方法传递的对象则取决于方法的使用者。(即前文中的策略模式)
  • 9.7 接口中的域
    1. 方法接口中的任何域都是自动是static和fianl的,在Java SE5前,这是产生C或C++中的enum具有相同效果的类型的唯一途径。
    2. 接口的域自动是public的。
    3. 在接口中定义的域不能是空final。
  • 9.8 嵌套接口
    1. 接口可以嵌套在类或者其他接口中。
    2. 在类中定义的接口可以试private类型的。
    3. 当实现某个接口时,并不需要实现嵌套在其内部的任何接口。
  • 9.9 接口与工厂
    1. 工厂方法设计模式:生成遵循某个接口的对象的典型方式,这与直接条用构造器不同,我们在工厂对象上调用的是创建方法,而该工厂对象将产生接口的某个实现的对象。

交流群

Telegram频道已经开通,关注flyzythink,随手分享正能量,了解VPS优惠与补货
Telegram群组已经开通,加入flyzy小站,FREE TO TALK
搬瓦工用户交流TG群,加入搬瓦工用户交流群,畅聊搬瓦工
VPS交流群1(已满):780593286 flyzy小站
VPS交流群2:729726961 flyzy小站
VPS优惠通知群(禁言):940689410 flyzy小站
搬瓦工交流群(搬瓦工用户推荐):938957834 flyzy小站
搬瓦工补货通知群(禁言):618922256 搬瓦工补货通知群
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注