专业的JAVA编程教程与资源

网站首页 > java教程 正文

面向对象编程的基本概念(二)【Java编程基础第2篇】

temp10 2024-12-15 16:54:45 java教程 11 ℃ 0 评论

上期回顾:

前面我们讲了面向对象编程的一些基础知识,主要包括:类、对象的定义,封装和信息隐藏的概念,以及封装的好处。本期我们主要讨论“继承”,这也是面向对象的编程与设计中的一个重要特性。

面向对象编程的基本概念(二)【Java编程基础第2篇】

那么继承具体是指什么,这个概念如何产生的呢?

我们将一些特定类别的事物提取共同点,归纳出来,成为一般类;这样,归纳出的一般类就称为这些特定类的基类(也叫超类),而这些特定类成为派生类(也叫子类)。

这些派生类可以继承基类的运行规律、方法(特性)。反过来说,基类派生类更高级别的抽象,因为它提炼了派生类中共同的特性、数据;

通过继承,一个派生类可以直接使用其基类的所有数据和方法,而不需要重新去设计。这里的数据和方法,如果对应到具体程序设计中,往往可以称为成员变量和成员函数。

我们还是使用前面的例子,从轿车类、公交车类、卡车类等,可以提炼、抽象出汽车类,作为基类,然后轿车类、公交车类可以继承汽车类的一些数据和方法,具体包括品牌、型号、耗油量等数据,点火、熄火、刹车等方法;而汽车类可以派生出轿车类、公交车类和卡车类等。

我们再来讲讲继承的主要好处,也即,通过类的继承关系,使同类事物所具有的公共特性、数据能够复用、共享,简单来说,也就是可以提高复用程度,减少重复工作。

这里顺便提一下组合的概念。

组合,在某种程度上,它也可以提高复用程度,但概念上不一样,使用场景也有所区别。

例如,眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部分,所以类Head 应该由类Eye、Nose、Mouth、Ear 组合而成,而不是派生出来,因为Head不是一种Eye,也不是Nose。

小结:

在逻辑上,如果A类是B 类的“一种”(a kind of),则应该设计成A为B的派生类,这样A可以继承B的数据和方法;

在逻辑上,如果A 类是B 类的“一部分”(a part of),则应该设计成组合关系,让A为B的数据,具体到编程概念,就是让A作为B的成员变量。

今天我们就讲到这里,下期将为大家讲述面向对象编程的另外一个重要特性:多态性。

作者:星河。更多编程内容,从零基础开始学,一步步的,请关注公号vjiazhi。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表