美文网首页Java基础
Java编程思想笔记9.接口

Java编程思想笔记9.接口

作者: 卢卡斯哔哔哔 | 来源:发表于2018-11-09 10:41 被阅读0次

点击进入我的博客

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。

9.1抽象类和抽象方法

  • 抽象方法:这种方法是不完整的,仅有声明而没有方法。用abstract修饰的方法。
  • 抽象类:包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。用abstract修饰的类。
  • 可以创建一个没有抽象方法的抽象类。
  • 创建抽象类和抽象方法非常有用,因为他们可以使累的抽象性明确起来,并告诉用户和编译器打算怎样来使用它们。抽象类还是很有用的重构工具,因为它们使得我们可以很容易地将公共方法沿着继承层次结构向上移动。

9.2 接口

  • interface关键字产生类一个完全抽象的类(接口),它根本没有任何具体实现。
  • 一个接口表示:所有实现了该特定接口的类看起来都像这样。
  • 接口用于建立类于类之间的协议。
  • 接口中的域:默认是publicstaticfinal的。
  • 接口中的方法只能是public的,而且默认就是public的。

9.3 完全解耦

  1. 复用代码的第一种方式是客户端程序员遵循该接口来编写它们自己的类。

策略设计模式

更详细的请看设计模式!!!

  • 根据所传递的参数对象的不同而具有不同行为的方法。
  • 这类方法包含所要执行的算法中固定不变的部分,而“策略”包含变化的部分。
  • 策略就是传递进去的参数对象。
public class Test {
    static void process(Processor p) {
        p.process();
    }

    public static void main(String[] args) {
        Test.process(new Processor1());
        Test.process(new Processor2());
    }
}

interface Processor {
    void process();
}

class Processor1 implements Processor {
    public void process() {
        System.out.println("1");
    }
}

class Processor2 implements Processor {
    public void process() {
        System.out.println("2");
    }
}

适配器设计模式

  • 你经常会无法修改你想使用的类,因为一般你是使用第三方的类库。
  • 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

9.4 Java中的多重继承

  • Java最多只能继承一个类,但是可以实现多个接口
  • 一个类可以向上转型成任何一个接口。

使用接口的原因:

  1. 为了能够向上转型成为多个基类类型。
  2. 与抽象类相同,防止客户端程序员创建该类对象。

抽象类OR接口:

  1. 如果要创建不带任何方法定义和成员变量的基类,那么就应该选择接口而不是抽象类。
  2. 事实上,如果知道某事物应该成为一个基类,那么第一选择应该是使它成为一个接口。

9.5 通过继承来扩展接口

  • 接口可以继承其他接口
  • 接口可以一次性继承多个其他接口

9.5.1 组合接口时的名字冲突

  • 完全相同的方法不会有问题
interface I1 { void f();}
interface I2 { int f(int i);}
interface I3 { int f();}

class C {
    int f() {
        return 0;
    }
}
// 两个方法重载
class C2 implements I1, I2 {
    public void f() {

    }
    public int f(int i) {
        return 0;
    }
}
// 重载
class C3 extends C implements I2 {
    public int f(int i) {
        return 0;
    }
}
// 相同的方法没问题,同时重写两个方法
class C4 extends C implements I3 {
    public int f() {
        return 4;
    }
}
// 此时是有问题的
class C5 extends C implements I1 {
}

9.6 适配接口

接口最吸引人的原因之一就是允许同一个接口具有多个不同的具体实现。

9.7 接口中的域

  • 因为接口中的域是publicstaticfinal的,所以接口可以用来创建常量组(尽量避免这么做!)。

9.7.1 初始化接口中的域

  1. 在接口中定义的域不能是空final,但是可以被非常量表达式初始化。
  2. static代码块不能出现在接口中

9.8 嵌套接口

  • 接口可以嵌套在类或其他接口中。
  • 类内部的接口可以有四种权限控制符。
  • 接口内部的接口可以只能是public的。
  • 当实现某个接口时,不需要实现嵌套在其内部的任何接口。

9.9 接口与工厂

  • 接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方法就是工厂方法
  • 这与直接调用构造器不同,我们在工厂对象上调用的是创建方法,而该工厂对象将生成接口的某个实现的对象。

9.10 总结

优先使用类而不是接口!

相关文章

  • Java编程思想笔记9.接口

    点击进入我的博客 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 9.1抽象类和抽象方法 抽象方...

  • java编程思想——接口

    接口与内部类为我们提供了一种接口与实现分离的更加结构化的方法。 1.抽象类与抽象方法 抽象类,作为普通的类和接口之...

  • 2021-09-15 JAVA编程思想

    Java编程思想重点笔记(Java开发必看)[https://www.cnblogs.com/softwareof...

  • Java编程思想学习笔记(8)

    Java编程思想学习笔记(8) Java多态 多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。 同时...

  • Java - 打破访问权限的方式

    本文为《Java 编程思想》14.9节的读书笔记,文章内容仅限交流使用! 我们先看看使用接口时方法的访问权限(就这...

  • Java编程思想(八) 接口

    接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 1、抽象类和抽象方法 包含抽象方法的类叫做抽象类...

  • 《JAVA编程思想》笔记

    《JAVA编程思想》是一本适合有一定java编程基础的用来巩固基础知识,这次也只花了一周的时间从第一章看到了第九章...

  • 「Java编程思想」「笔记」

    第一章 对象导论 "我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵...

  • Python 中的面向接口编程

    前言 ”面向接口编程“写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎...

  • 函数式编程接口

    函数式编程是JAVA 1.8引入的编程思想,即一个接口只有一个抽象方法,函数式编程也叫基于Lambda表达式编程。...

网友评论

    本文标题:Java编程思想笔记9.接口

    本文链接:https://www.haomeiwen.com/subject/mebvxqtx.html