Think in OO

在理解面向对象之前,首先我们要了解类和对象之间的关系。
了解什么是类,什么是方法,什么是属性。
接下来我们通过介绍一些OO的特性来了解面向对象的过程。
1.隐藏和封装(降低耦合度)
就是一个类的操作尽量交给他自己去做,如果有两个类之间有关系,类A也尽量调用类B中已经封装好的函数,而不是直接在类A中实现关系操作。
举例:老张开车去东北。
类:Person Car Address
那么在Person中的drive()函数就需要调用Car对象以及Address对象对其进行操作,此时我们不要直接在drive中写操作,而是将Car对象/Address对象作为形参传进来,然后通过Car 中定义的go()函数进行调用(Address对象作为go()的形参传进来),这样之后想要对Car的名字啊、功能啊啥的\Address的属性啊进行修改就比较方便。降低了对象之间的耦合度。
2.继承
如果老张想换一种途径去东北,那么我们如果提前定义一个Plane类,再在Person
中定义一个参数不一样的的drive函数的话,就很麻烦。解决办法就是,定义一个Vehicle类(拥有go方法),将drive函数的参数改为Vehicle类对象,Plane和Car就都可以继承Vehicle类,实现drive操作。
3.多态(核心,可扩展性)
多态存在的三个必要条件是:继承、方法的重写、父类引用指向子类对象。
多态可以使程序有良好的拓展性,并且实现通用的方法(也可以改写该方法)。
实现多态的方式有:接口实现、重写父类方法、或者使用抽象类和抽象方法。

猜你喜欢

转载自blog.csdn.net/mulinsen77/article/details/84239150
oo