谈谈面向对象的特征

365 阅读2分钟

对于这个问题,我看到的答案有两种,第一种是封装继承与多态,第二种是封装继承多态和抽象。下面我简单说下我对这几个概念的理解。

封装

封装就是一个对象把自己的私有属性或方法隐藏起来,只对外提供与其它对象交互的必要接口,其他对象通过这些接口来操作这些私有的属性与方法,这就可以在数据正常交互的同时,保证安全性。

继承

当我们去定义一个类的时候,可以以一个已有的类为基础,把这个已有的类中定义的内容作为自己的内容,并且可以增加新的内容或者修改原有的内容以满足各种需要,这就是继承。继承是子类共享父类数据的一种机制,提供了很强的重用性与扩展性。

多态

多态字面意思就是多种形态,简单的说,就是指不同的类可以响应同一个请求,实现多态,有三个前提:

  • 要有继承关系
  • 子类要重写父类的方法
  • 父类引用指向子类对象

实现多态一般方式是重写与重载,可以这么说,多态在我们平时开发中随处可见。

抽象

我们把某一类无法具体说清楚的事物定义为抽象的.例如你看到一种没见过的动物,你就会说这是一只动物.那么这个动物就是抽象的.如果我们没有定义一个抽象类叫动物,那么当你再见到那种没见过的事物的时候就没法称呼它。在我们的开发中,说到抽象最先想到的就是抽象类与接口,从同种类型对象中抽取出相同的属性,放到抽象类或接口中,所有同类型对象共同去继承(实现)此抽象类(接口),这就是我理解的抽象