Java面向对象的三个特征与含义(封装 继承 多态)

时间:2022-08-25 21:59:06

三大特征是:封装、继承和多态。

封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。

是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为。这非常类似大自然中的物种遗传。

多态不是很好解释:向于使用java中的固定用法,即overriding(覆盖)和overload过载)。多态则是体overriding(覆盖)上,而overload过载不属于面向象中多的范畴,因overload过载)概念在非面向象中也存在。overriding(覆盖)是面向象中的多,因overriding(覆盖)是与系,是面向象所特有的。多是指父象中的同一个行能在其多个子象中有不同的表。也就是象可以使用重写父象中的行,使其有不同于父象和其它子象的表就是overriding(覆盖)。

其中继承和封装我们平时用的做广泛,但是多态用到的却不多,这是因为多态是一种建立在不同设计模式基础之上的特征。要使用多态,需要先掌握几个常见的设计模式。在讲解多态之前先普及一下Java变量类型的划分,这有助于我们理解多态。

Java面向对象的三个特征与含义(封装 继承 多态)

这里要重点讲解一下引用类型的变量。引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定;运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现所谓的多态,下面是一个例子:

Java面向对象的三个特征与含义(封装 继承 多态)

注意:引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法。因此,编写Java代码时,引用变量只能调用声明该变量时所用类里包含的方法。例如,通过Objectp =new Persion()代码定义一个变量p,则这个p只能调用Object类的方法,而不能调用Persion类里定义的方法。