我们都知道面向对象有三大特性:封装、继承、多态。但是 他们都是为了解决什么样的问题,都有什么体现呢?
封装
封装其实是为了解决程序安全的问题,私有属性公有方法,对于一个函数,一个类,一个框架而言是不能把所有的信息暴露给你去获取或者修改了,这样可能会导致函数、框架的不稳定。
继承
说到继承我很容易就想到了继承遗产。。继承也比较好理解,就是继承父类的变量和函数,拥有父类的特性,自己再实现部分功能。所以他其实就是解决了代码的复用问题。不用为拥有部分相同功能的类去写重复代码。
多态
父类类型的引用指向子类类型的对象,其实我感觉这个多态在某种意义上是要基于继承去实现的,他是为了解决程序的拓展问题的,不用因为新增了某些功能去大量的修改代码。那么什么情况下才算是多态或者说什么才是多态呢?当然是发生重写、重载和我们开头所说的父类类型的引用指向子类类型的对象,这种情况下就被认为是多态。例如咱们常说的面向接口编程。