封装:
封装的目的是为了减少代码冗余,避免重复性使用代码。
所以定义方法,可以视为对一段同样作用代码的封装,来降低代码重复性
定义一个类,接口等等,也可以视为对具有相同特性的代码块的封装。
同样关键字enum,也可视为对Enum类的封装。
封装,主要在装,即包装成一个整体,但封也同要重要,这代表着安全性,所以权限修饰符的封装意义更多体现在对装的安全要求,即封。
总而言之,在写代码时,当遇到大量重复性代码时,就要考虑是否可以封装来优化。
继承:
可以视为避免重复性的封装。
无论继承类还是实现接口,都是因为父类(接口)中有一段重复性代码(属性或功能)同样适用于子(实现)类,为避免重复封装这段代码,所以才有了继承的体现。
多态:
可以视为对继承功能的优化,即一种对拥有继承特性代码的新使用方式。
多态的前提就是继承,因为所有子(实现)类都适用父类(接口)中的一段重复性代码(属性或功能),所以将所有调用该功能的子(实现)类对象都指向父类引用来避免子类重复性声明或者提高代码扩展性。
因此 多态的使用要在继承(接口实现)的过程中含有方法重写才更有意义。