什么是面向对象?

 ·  2019-12-17

面向对象是一种编程规范。它具有封装、继承、多态这三大特征。
将一些方法和属性封装成一个类或接口,这样就可以在需要用到某个方法的时候直接找对象就可以了,不需要你自己执行,而是让对象帮你执行。就好比说你的身份从执行者变成了一个指挥者。封装还可以通过设定成员的权限来控制是否将某些成员暴露给外部,可以在某些程度上提高安全性。封装的另一个好处是它可以提高代码的复用性。当你将某些功能方法封装到一个类以后,再想使用这些功能只需创建对象就可以了,让对象来执行这些方法。
继承是一种抽取共性的体现形式。当你发现某些类的方法或属性都一样,那么可以将这些类的方法统一抽取出来,封装成一个类。当这些类继承这个类以后,这些类就具备了这个类的属性和方法,不需要再将这些属性和方法在每个类中都写一遍了,提高了代码的复用性。Java不允许类与类之间多继承,为了拟補这个局限,Java创建了接口。当一些方法不明确实现方式,而又作为一些扩展功能时,可以将这些方法抽取出来,封装成接口。让子类实现这个接口,这个接口的方法就被具体实现了。Java允许实现多个接口,接口和接口之间可以多继承。在子类实现这些接口时,如果这些接口中某些方法重复时,子类只需要重写一次就可以了。实现接口也可以看作是继承的一种体现形式。
多态是Java面向对象三大特性之一。一个事物可以具备多个体现形态。用Java语言描述就是一个对象既可以被该对象的类类型变量接收,也可以被该类的父类的类类型变量接收,或者是该类的接口的变量来接收。多态的特点是父类或接口的引用指向子类的对象。一个方法定义好之后可以有不同的实现方式,可以让该引用变量的引用指向不同的子类对象,那么就可以具备不同的实现方式了。当然它也有局限性,就是父类的引用调用子类对象的方法的时候只能调用父类定义好的方法,父类中没有子类具备的方法,那么是不能调用这个方法的。
面向对象相比面向过程最大的不同是编程人员身份的改变,从原来面向过程的执行者变成了面向对象的指挥者。以前是自己执行方法,有了面向对象以后变成了让对象帮你执行方法,你只需要指挥对象要使用哪个方法就好了。

 
评论
Hello World. All Rights Reserved. Theme Jasmine by Kent Liao.
w