Java面向对象有哪些特征


面向对象编程是利用类和对象编程的一种思想。

问java面向对象的特征,实际就是问Java的三大特性。那么这三大特性别的不说,作为咱们Java开发那必定熟烂于心:封装、继承、多态。 那到底是啥呢?请见分晓。 万物皆对象,对象是具体的世界事物。事物与事物之间、不同的事物之间存在不同的关系。万物可归类,类是对于世界事物的高度抽象,一个类它自身与外界的封装关系,一个父类和子类的继承关系, 一个类和多个类的多态关系,就表现了面向对象的三大特征。

1. 封装

封装说明一个类行为和属性与其他类的关系,低耦合,高内聚。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。 对外界而言,它的内部细节是隐藏的,暴露给外界的只是对这个类内部属性或方法的访问方法(这里为了更好区分,也可以叫方式,实际也是咱们java里的方法)。

  • 属性的封装:使用者只能通过事先定义好的方法来访问数据,可以方便地加入逻辑控制,限制对属性的 不合理操作;
  • 方法的封装:使用者按照定义的方式调用方法,不必关心方法的内部实现,便于使用;便于修改,增强 代码的可维护性;

2.继承

继承是父类和子类的关系。

继承是从已有的类中派生出新的类,新的类能拥有已有类的数据属性和行为,并能扩展新的能力。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法。可以很好理解,一个类只能继承一个父类,但一个父类可以被多个子类继承(这里有一个单继承(类class之间)、多实现(接口interface之间)的知识点,下回见分晓)。

  • 从多种类中抽象出一个基类,这个基类具备这些多种类的共同特性,这个基类被抽取出来后,这些多种类只需要用extends关键字继承了基类(父类)后,这些类就具备了这些相同的属性,同时也避免了相同的东西重复的写。继承的类叫做子类(派生类或者超类),被继承的类叫做父类(或者基类)。
  • Java通过extends关键字来实现继承,父类中通过private定义的变量和方法不会被继承,不能在子类中直接操作父类通过private定义的变量以及方法。 运用继承原则使得系统模型比较简练也比较清晰。

3.多态

相比于封装和继承,Java多态是三大特性中比较复杂、比较综合性的,就好比一个大题里包含了多个小题的知识点。

封装和继承最后归结于多态,多态指的是类和类的关系。
  • 两个类由继承关系,存在有方法的重写(这里涉及一个重载和重写,那么可以知道重写是发生在两个类之间并且是发生与子类中,同时子类中对从父类中继承而来的方法进行重写,但方法的壳儿不变,只变{}里面的内容;而重载相反的,{}里面的不变,并且是发生在同一个类中。这里暂不细讲),故而可以在调用时有父类引用指向子类对象。
多态必备三个要素:继承,重写,父类引用指向子类对象。
JAVA-技能点
知识点