java编程思想-interface总结

这是我阅读java编程思想选择入手的第一个模块,选择interface模块也是因为,不想从头开始读1000多页的书,心理压力太大。之前面试被问到的相关内容,interface与abstract classs。
本章涉及内容:

抽象类是介于interface与普通类之间

Abstract classes and methods

首先提到abstract class

  • 抽象类可以是他的派生类具有类似的方法
  • 抽象类不能创建具体实例
  • 抽象类的派生类没有实现所有的抽象方法则也是抽象类,用关键字abstract 标识
  • 抽象类可以没有抽象方法,意味着你不想生成这个类的实例
  • 其实一直不理解这一块为啥一直提“The instrument class” 因为是挑着看的,我理解的意思是工具类,类似一些没有状态的类
  • 可以有利于重构时候的方法提升

interface

interface是特殊的抽象类,更进一步的抽象

  • interface只提供了方法的声明,没有实现
  • interface可以实现变异版本的“多继承”,可以创建一个类,向上转型为多个基本类
  • interface 如果不添加pubilc关键字,只能在包内访问
  • interface 可以有字段。默认添加会添加static和final修饰
  • Creating a method that behaves differently depending on the argument object that you pass it is Strategy design pattern 策略设计模式:根据传入参数对象创建一个行为不同的的方法
  • ***write code to take the interface thar you have and produce the interface that you need ***Adapter design pattern 适配器模式:编写一个接口,获取需要控制的生成接口实例

"Multiple inheritance" in java

  • “多继承” 实现多个接口 与C++ 是不同的
  • 接口的继承 继承也可以多个接口,使用逗号隔开
  • 组合接口的命名冲突,继承多个接口、方法名形同,重载如果仅仅返回值不同是不被允许的。尽量规避不同的接口方法名相同

Adaptiong to an interface

  • 适配一个接口 Strategy design patten

接口的字段

  • java5之前,接口用来实现枚举常量的效果,建议接口中的字段使用大写字母加下划线组成
  • interface中字段默认static和final

接口的嵌套

  • 接口可以使用private 用于private inner class
  • private 的interface 只能在class内部使用,切无法向上转型
  • interface嵌套interface,但是嵌套的interface必须是pubilc

interface和工厂方法

  • "An interface is intended to be a gateway to multiple implementations ,and a typical way to produce objects that fit interface " Factory Method design pattern 工厂方法设计模式:
    如果一个接口有多个实现,并且这个接口返回一个生产对象。

summary

  • 主要讲述interface和abstract 的创建应该是有设计意图的,在重构的工作当中,使用interface和abstract是可以改变代码的健壮性。

你可能感兴趣的:(java编程思想-interface总结)