Head First Java 读书笔记(01)--Java的三大特性

Head First Java 读书笔记(01)--Java的三大特性

薛定谔的汪

写在前面的话:

  这本书是老外写的,国人翻译的。感觉此书的知识点不是特别的集中(可能是老外的思维方式与咱不一样吧),但贵在其将文字转换成了生动和更容易接受的图片,大量的比喻让人感受到了知识点的有趣之处,让学习不再那么枯燥无趣。
  掌握一些Java基础知识后,现在回过头来再看这本书,依然觉得收获颇丰,于是便把那些让人印象深刻的地方记录下来,总结、思考和分享,出于精力和效率,这里就不再细致地去罗列和整理每个知识点了(作为强迫症不得不说真的有过这样的想法,可是想着未来还有好多书要看,每本都流水一样地写,我得把自己弄疯掉,挑一些重点记录下吧)。

Java的三大特性

Java的三大特性分别是:封装、继承、多态。

封装:

属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用,也可以将一些信息对外隐藏。

继承:

我的理解就是个性对共性方法属性的接受,并加入个性特有的属性与方法。

  • 概念:一个类继承另一个类,则称继承的类为子类,被继承的类为父类。
  • 目的:实现代码的复用。
  • 理解:子类与父类的关系并不是日常生活中的父子关系,子类与父类而是一种特殊化与一般化的关系,是is-a的关系,子类是父类更加详细的分类。如class dog extends animal,就可以理解为dog is a animal.注意设计继承的时候,若要让某个类能继承,父类需适当开放访问权限,遵循里氏代换原则,即向修改关闭对扩展开放,也就是开-闭原则。
  • 结果:继承后子类自动拥有了父类的属性和方法,但特别注意的是,父类的私有属性和构造方法并不能被继承。 另外子类可以写自己特有的属性和方法,目的是实现功能的扩展,子类也可以复写父类的方法即方法的重写。

读书要点:

  • 子类会继承父类素有public类型的实例变量和方法,但不会继承父类private类型的变量和方法
  • 继承下来的方法可以被重写。
  • is-a的关系是单方向的,如:河马是动物,但动物不一定是河马。
  • 当某个方法被重写过,调用这个方法的时会调用到重写过的版本。
  • 如果类Y继承X,类Z继承Y,那么类Z is-a X。
  • 继承不可以多继承,如Y不可以同时继承X,也继承Z,但是可以分层级继承。
  • 以后的学习运用中,要善用继承,不要滥用继承(遵照is-a原则)。

多态:

多态的概念发展出来,是以封装和继承为基础的。 多态就是在抽象的层面上实施一个统一的行为,到个体(具体)的层面上时,这个统一的行为会因为个体(具体)的形态特征而实施自己的特征行为。(针对一个抽象的事,对于内部个体又能找到其自身的行为去执行。)

  • 概念:相同的事物,调用其相同的方法,参数也相同时,但表现的行为却不同。
  • 理解:子类以父类的身份出现,但做事情时还是以自己的方法实现。子类以父类的身份出现需要向上转型(upcast),其中向上转型是由JVM自动实现的,是安全的,但向下转型(downcast)是不安全的,需要强制转换。子类以父类的身份出现时自己特有的属性和方法将不能使用。

Head First Java 对抽象类,接口也做了很详细的描述,看完后对其有了更深的理解。

  • Title: Head First Java 读书笔记(01)--Java的三大特性
  • Author: 薛定谔的汪
  • Created at : 2017-03-13 18:13:48
  • Updated at : 2023-11-17 19:37:37
  • Link: https://www.zhengyk.cn/2017/03/13/java/HFJ01/
  • License: This work is licensed under CC BY-NC-SA 4.0.
On this page
Head First Java 读书笔记(01)--Java的三大特性