5.接口(Thinking in java学习五)

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

抽象类和抽象方法(abstract)

  • 抽象基类,简称抽象类:通用接口建立起一种基本形式,以此表示所有导出类的共同部分。
  • 抽象方法:仅有声明而没有方法体。
    继承一个抽象类,就必须为基类中的所有抽象方法提供方法定义。

注意:

  • 如果一个类包含一个或者多个抽象方法,该类必须被限定为抽象的。
  • 抽象类是很有用的重构工具,它们使得我们可以很容易地将公共方法沿着继承层次结构向上移动。

接口(interface)

比抽象概念更加向前迈进了一步,产生一个完全抽象的类,它根本没有提供任何具体实现。只让创建者确定方法名、参数列表和返回类型。
接口被用来建立类与类之间的协议。
接口不仅仅是一个极度抽象的类,还可以通过创建一个能够被向上转型为多种基类的类型,来实现某种类似多重继变种的特性。

接口特性:public和包内访问权限,接口默认地将域设成static与final的
要让一个类遵循某个特定接口,需要使用implements关键字。

完全解耦

  • 策略设计模式:创建一个能够根据所传递的参数对象的不同而具有不同行为的方法。
  • 适配器设计模式:适配器中的代码将接受你所拥有的接口,并产生你所需要的接口。

Java中的多重继承

使用接口的原因:

  • 为了能够向上转型为多个基类型,由此带来的灵活性。
  • 防止客户端程序员创建该类的对象,并确保这仅仅是建立一个接口。

我们应该选择接口还是抽象类?

创建不带任何方法定义和成员变量的基类,就选择接口,如果知道某事物应该成为一个基类,那么也应该使它成为接口。

通过继承来扩展接口

通过继承很容易扩展接口,在接口中增加新方法的声明,还可以在新接口中组合数个接口。接口继承可以同时继承多个接口。

适配接口

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

接口中的域

接口中的域都是自动static和final的,所以接口就可以很便捷的创建常量组。
接口常量组由于Java SE5出现enum枚举类型后,就没有太大意义了。

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

嵌套接口

接口可以嵌套在类或其他接口中。
类中嵌套接口的语法是比较常见的,可以拥有public和包访问权限。
接口可以被实现为private 的,但是其只能被自身调用,实现private接口只是一种方式,不允许向上转型。

接口与工厂

接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是工厂方法设计模式。
工厂对象上调用的是创建的方法,而该工厂对象将生成接口的某个实现的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Thinking in Java》是一本经典的Java编程入门教材,通过阅读该书可以系统地学习Java编程的基础知识和高级概念。阅读过程中,我结合自己的学习体验和实践,进行了详细的学习笔记。 首先,该书从基础语法开始介绍,包括数据类型、控制语句、数组等。对于初学者来说,这些基础知识是最基本的,通过书中的示例代码和解析,我能够更好地理解这些概念和语法规则。 其次,书中对面向对象编程进行了深入的讲解。通过学习面向对象的思想,我明白了类、对象、继承、多态等概念的含义和使用方法。同时,书中还讲解了接口、内部类、异常处理等较为高级的概念,极大地拓宽了我的Java知识面。 另外,该书还介绍了Java的常见类库和工具,如字符串操作、集合框架、输入输出、线程等。这些内容对于实际开发非常有用,而且书中的示例代码也能帮助我更好地理解和应用这些类库和工具。 此外,该书通过大量的实例和案例,生动地展示了Java编程的实战应用。这些实例涵盖了各种不同的应用场景,从简单的程序到复杂的项目,都有所涉及。通过分析这些实例,我不仅可以学习到实际编程的技巧,还能提高自己的解决问题的能力。 总的来说,读完《Thinking in Java》后,我对Java编程有了更深入的理解和掌握。通过学习笔记的整理,我不仅复习了各个知识点,还加深了对这些概念的理解。希望这份学习笔记能够帮助到其他想要学习Java的同学,让他们能够更快地入门和掌握这门编程语言。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vinson武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值