如何理解面向对象?
- 面向对象是对现实一种高度抽象,把物体的固有属性抽象为类的属性,把物体行为定义为方法,
三大特性:
-
封装性:把具体实现的方法封闭起来,把方法的使用开放出去,开闭原则,把可修改的部分私有,把可扩展的部分开放出去,意义就是应该通过扩展来实现代码的变化,而不是修改源代码,这样提高稳定性以及灵活性,(例子:处理打折的书籍价格)。
-
继承性:单继承,对于java来说,把共有部分抽离出父类,子类继承后实现自己私有的部分。
-
多态性:一句话概括:事物在运行的过程中有不同的体现。
-
多态的前提:
-
1.继承关系
-
2.父类引用指向子类对象
-
3.子类重写父类方法。
-
-
特点:
-
成员变量:编译看父类,运行看父类。
-
成员方法:编译看父类,运行看子类(动态绑定)。
-
静态属性和方法:编译看父类,运行看父类。
-
弊端:无法使用子类的特有属性和方法(但是可以再次类型强转为子类,就可以使用了)
-
体现:重载,覆写,向上转型
-
-