第九章 接口

文章目录

          • 1.抽象类和抽象方法
          • 2.接口
          • 3.完全解耦
            • 复用代码
          • 4.Java的多重继承
          • 5.通过继承来拓展接口
          • 6.适配接口
          • 7.接口中的域
          • 8.嵌套接口
          • 9.接口与工厂

第九章 接口_第1张图片

1.抽象类和抽象方法
  1. 抽象类(抽象基类):通用接口建立起一种基本形式,以此表示导出类的共同部分
  2. 如果一个类包含一个或多个抽象方法,该类必须限定为抽象类
  3. 如果从一个抽象继承的,并像创建该新类对象,那么就必须为基类中的所有抽象方法提供方法定义
  4. 我们可以创建一个没有任何抽象方法的抽象类
  5. 抽象类和抽象方法可以使类的抽象性明确起来,并告诉用户和编译器怎么使用他们
  6. 抽象类可以很容易的将公共方法沿着继承层次向上移
2.接口
  1. abstract关键字,允许人们在类中创建一个或多个没有定义的方法,由此类的继承类来具体实现这些方法
  2. interface关键字,产生一个完全抽象的类,它允许创建者确定方法名、参数列表、返回值类型,但是没有方法体
  3. 接口被用来建立类与类之间的协议
  4. 接口中可以显示声明方法为public的,但是即使你不这么做,他们也是public的
3.完全解耦
  1. 接口可以让我们写出可复用性更好的代码

  2. 策略设计模型:创建一个根据所传递参数不同,而有不同行为的方法

  3. 复用代码
  • (1) 客户端程序员遵守接口来编写他们的类
  • (2) 适配器模式:适配器中的代码将接受你所拥有的代码,并产生你所需要的接口
4.Java的多重继承
  1. 格式:Class Hero extend A,B implement C,D,E
  2. 可以继承多个接口,并向上转型为每个接口
5.通过继承来拓展接口
  1. 通过继承可以很容易的在接口中添加新的方法
  2. 通过继承可以在新接口组合多个接口
  3. 组合接口时尽量避免名字冲突
6.适配接口
  • 我们可以在现有类之上添加新的接口,所以这意味着让方法接受接口类型,是一种让任何类都可以对该方法进行适配的方式
7.接口中的域
  1. 放入接口中的任何域都自动是static和final的

  2. 接口中的域自动是public的,所以没有显示指明这么一说

  3. 初始化接口中的域

    在接口中定义的域不能是“空final”,但是可以是被非常量表达式初始化

8.嵌套接口
  1. 实现一个private接口,可以强制该接口中的方法定义不要添加任何类型信息(也就是说不能向上转型)
  2. 嵌套在另一个接口中的接口自动是public的,而不能声明为private
9.接口与工厂
  1. 工厂方法设计模型

    我们在工厂对象调用的是创建方法,而该工厂对象将生成接口的某个实现对象。我们可以透明地将某个实现替换成另一个实现

你可能感兴趣的:(Java编程思想,抽象类,java)