封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。
封装的好处:
1) 实现了专业的分工
2) 良好的封装能够减少耦合
3) 类内部的结构能够自由修改
4) 可以对成员进行更精确的控制
5) 隐藏信息,实现细节
Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,父类是子类的一般化,子类是父类的特殊化(具体化)
继承的声明方式:
1)、使用extends 关键字声明,
2)、子类 extends 父类{}
继承的特征:
1)、传递性
若类C继承类B,类B继承类A(多继承),则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法
2)、单根性
若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。
3)、子类调用父类成员
使用super关键字调用父类成员
子类默认会先调用父类的无参构造方法,如果父没有则报错,可以手动指定,但必须在第一行
设计继承关系的验证方法:
如果想要知道某物是否应该要继承另一物是,则可以使用IS-A测试来检验。例如:狗是动物,三角形是一个多边形等。
注意:
1)、继承下来的方法可以被覆盖掉,但是实例变量不能被覆盖掉。
2)、当某个方法在子类中被覆盖过,调用这个方法时会调用到覆盖过的版本。
在了解多态之前,首先需要知道方法的唯一性标识即什么是相同/不同的方法:
何谓重载:
何谓覆盖/重写:
覆盖/重写的规则:
理解了上述知识点,是时候定义多态了:
向上转型的缺憾:
总结概括:
原文:https://www.cnblogs.com/happyone/p/10505156.html