面向对象的三大特征:封装,继承,多态
1、封装
a.封装使得对代码的修改更加安全和容易。将代码分成了一个个相对独立的单元。
只要电话的外部接口(键盘,屏幕,使用方法等)不发生改变,那么不管电话内部电路,技术如何改进,你都不需要重新学习就可以使用新一代的电话。同样,只要汽车的方向盘,刹车等外部接口不变,那么,不论如何改造它的发动机,你也一样会驾驶这类汽车。
封装所带来的好处是:明确的指出了那些属性和方法是外部可以访问的。这样当你需要调整这个类的代码时,只要保证公有(Public:)属性不变,公有方法的参数和返回值类型不变,那么你就可以尽情的修改这个类,而不会影响到程序的其他部分,或者是使用到这个类的其他程序。这就是为什么刚刚说的“在OOP中,对代码访问控制得越严格,日后你对代码修改的自由就越大”。
b.封装使整个软件开发复杂度大大降低。
能很好的使用别人的类(class),而不必关心其内部逻辑是如何实现的。你能很容易学会使用别人写好的代码,这就让软件协同开发的难度大大降低。
c.封装还避免了命名冲突的问题。
封装有隔离作用。电话上的按键和电视遥控器上的按键肯定用处不同。但它们都可以叫做按键,为什么你没有弄混呢?很显然一个属于电话类一个属于遥控器类。不同的类中可以有相同名称的方法和属性,但不会混淆。
2、继承
1.使用继承可以使得子类拥有父类的所有成员变量和方法
2.继承的子类不可以重新定义和父类名称相同的成员变量
3.子类重新实现父类中的方法,称之为重写
4.当调用某个方法时,优先在子类中寻找,如果子类没有定义该方法,就去父类中寻找
5.继承缺点是:耦合性强