《Java编程思想》笔记07-复用类

  1. 怎么用组合和继承?慎用继承!
  2. final

怎么用组合和继承?慎用继承!

到底是用组合好,还是继承好。无法简单地下结论。作者给出两者形象化的思考:

  1. 继承”:IS-A 关系。就是使用某个现有通用类,有通用的一组接口,只是开发出一个特定版本。比如通用类是车->公共汽车。
  2. 组合”:HAS-A 关系。本质不是同一个东西,接口基本不一样,我们只是想用某些功能。比如发动机->车。

“继承”在实战中并不太常用。不应该尽可能地使用继承,而是要慎重。用之前需要问自己一个问题:是否需要从导出类向基类进行向上转型?只有必须向上转型的情况才需要用继承。

所以正确的习惯是:优先考虑“组合”或“代理”。只在确实必要时才考虑“继承”。

final

final 关键字,意味着这个字段,只能被赋值一次!

  1. 基本型final 关键字,成为常量。
  2. 对象使用 final 关键字很奇怪,只是引用不能再重新指向另一个对象,但对象本事还是能改的。
  3. 全局静态常量,一般像这样带 public static final 关键字修饰基本型,就是典型的公开静态常量。不但编译时就确认它的值,而且全局独一份儿,而且所有包都可以访问。
  4. final 参数java 传递参数的时候传递的不是参数的拷贝,函数内部可以直接改变参数的值。如果给函数传递参数的饿时候加上 final,函数内不能改变参数的值。这个特性主要用来向匿名内部类中传递参数用。
  5. 方法被声明称 final 方法,继承它的子类就不能对父类中的此方法进行重写,覆盖。
  6. 类中的 private 方法,都相当于 final 方法,因为它对外部类来说不可见,所以没人能够重写它。
  7. 前被加上 final 之后,此类无法再被继承。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com

文章标题:《Java编程思想》笔记07-复用类

文章字数:527

本文作者:Bin

发布时间:2018-03-19, 22:25:43

最后更新:2019-08-06, 00:46:42

原始链接:http://coolview.github.io/2018/03/19/Java%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3/%E3%80%8AJava%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%E3%80%8B%E7%AC%94%E8%AE%B007-%E5%A4%8D%E7%94%A8%E7%B1%BB/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录