一,相关概念
在学习Java的面向对象时,有些前置的知识应当是具备的,比如引用,对象。
下图是面向对象三大特性的定义,有个直观印象就好。
二、三大特性
软件工程中一般认为 面向对象 = 对象 + 类 + 继承 + 消息通信 。
上面已经说了封装的定义了,封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 只要知道如何使用类就行了。它对不同使用者有不同的访问控制,即public、default、protected、private
- public : 所有的人都能使用
- default : 类内部都能使用
- protected :相同包中的类可以使用,不同包中的子类可以访问父类的protected属性
- private : 类内部能使用
封装减低了代码的复杂程度,类的实现者实现细节隐藏起来。
继承是子类继承父类的一种行为,这是有实际意义的。从实际情况看,若没有继承,将会不可避免的产生许多重复代码,导致后果就是代码量大且臃肿,而且维护性不高。
继承是通过extends关键字实现的,需要注意的是,Java是单继承。
几个需要注意的知识点:
1,super 和 this关键字
2,final关键字
多态应该是初学者最不容易理解的了。多态性是对象多种表现形式的体现。它存在的三个必要条件:继承,重写,父类引用指向子类对象,比如:
Parent p = new Son();
多态的核心是让调用者不必关注对象的具体类型。可以极大程度降低用户使用成本。
几个知识点:
1,向上转型
2,动态绑定
3,方法重写
一个天坑:
在构造方法中调用重写的方法