详细的解释下类的封装性,抽象性,继承性和多态性。

作者&投稿:居阮 (若有异议请与网页底部的电邮联系)
详细的解释下类的封装性,抽象性,继承性和多态性。~

学妹!其实书上就有,百度也有C++特性:抽象和封装,继承和派生,多态性多态性: 一种事物,多种形态;一个接口,多个方法C+++中指由于继承产生的相关的不同的类,对同一消息作出不同的处理即通过虚函数实现静态多态性:函数重载,运算符重载动态多态性:虚函数,通过基类的指针或引用实现 虚析构函数 纯虚函数 虚函数抽象类:包含一个或多个纯虚函数的类,不可实例化虚基类:多重继承时使用虚拟继承以防止继承同一基类的多份数据1.抽象性   把众多的事物进行归纳、分类是人们在认识客观世界时经常采用的思维方法,“物以类聚,人以群分”就是分类的意思,分类所依据的原则是抽象。抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,更充分地注意与当前目标有关的本质特征。从而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。例如,在设计一个学生成绩管理系统的过程中,考察学生张华这个对象时,就只关心他的班级、学号、成绩等,而忽略他的身高、体重等信息。因此,抽象性是对事物的抽象概括描述,实现了客观世界向计算机世界的转化。将客观事物抽象成对象及类是比较难的过程,也是面向对象方法的第一步。例如,将学生抽象成对象及类的过程如图1-1所示。2.封装性   封装(Encapsulation)就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。图1-1中的学生类也反映了封装性。封装有两个含义:一是把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。对象的属性值(除了公有的属性值)只能由这个对象的行为来读取和修改;二是尽可能隐蔽对象的内部细节,对外形成一道屏障,与外部的联系只能通过外部接口实现。  封装的信息隐蔽作用反映了事物的相对独立性,可以只关心它对外所提供的接口,即能做什么,而不注意其内部细节,即怎么提供这些服务。例如,用陶瓷封装起来的一块集成电路芯片,其内部电路是不可见的,而且使用者也不关心它的内部结构,只关心芯片引脚的个数、引脚的电气参数及引脚提供的功能,利用这些引脚,使用者将各种不同的芯片连接起来,就能组装成具有一定功能的模块。  封装的结果使对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。另一方面,当对象内部进行修改时,由于它只通过少量的外部接口对外提供服务,因此同样减小了内部的修改对外部的影响。同时,如果一味地强调封装,则对象的任何属性都不允许外部直接存取,要增加许多没有其他意义,只负责读或写的行为。这为编程工作增加了负担,增加了运行开销,并且使得程序显得臃肿。为了避免这一点,在语言的具体实现过程中应使对象有不同程度的可见性,进而与客观世界的具体情况相符合。  封装机制将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需要用设计者提供的外部接口让对象去做。封装的结果实际上隐蔽了复杂性,并提供了代码重用性,从而降低了软件开发的难度。3. 继承性   客观事物既有共性,也有特性。如果只考虑事物的共性,而不考虑事物的特性,就不能反映出客观世界中事物之间的层次关系,不能完整地、正确地对客观世界进行抽象描述。运用抽象的原则就是舍弃对象的特性,提取其共性,从而得到适合一个对象集的类。如果在这个类的基础上,再考虑抽象过程中各对象被舍弃的那部分特性,则可形成一个新的类,这个类具有前一个类的全部特征,是前一个类的子集,形成一种层次结构,即继承结构。  继承(Inheritance)是一种联结类与类的层次模型。继承性是指特殊类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即特殊类中不必重新定义已在一般类中定义过的属性和行为,而它却自动地、隐含地拥有其一般类的属性与行为。继承允许和鼓励类的重用,提供了一种明确表述共性的方法。一个特殊类既有自己新定义的属性和行为,又有继承下来的属性和行为。尽管继承下来的属性和行为是隐式的,但无论在概念上还是在实际效果上,都是这个类的属性和行为。当这个特殊类又被它更下层的特殊类继承时,它继承来的和自己定义的属性和行为又被下一层的特殊类继承下去。因此,继承是传递的,体现了大自然中特殊与一般的关系。  在软件开发过程中,继承性实现了软件模块的可重用性、独立性,缩短了开发周期,提高了软件开发的效率,同时使软件易于维护和修改。这是因为要修改或增加某一属性或行为,只需在相应的类中进行改动,而它派生的所有类都自动地、隐含地作了相应的改动。  由此可见,继承是对客观世界的直接反映,通过类的继承,能够实现对问题的深入抽象描述,反映出人类认识问题的发展过程。4.多态性   面向对象设计借鉴了客观世界的多态性,体现在不同的对象收到相同的消息时产生多种不同的行为方式。例如,在一般类“几何图形”中定义了一个行为“绘图”,但并不确定执行时到底画一个什么图形。特殊类“椭圆”和“多边形”都继承了几何图形类的绘图行为,但其功能却不同,一个是要画出一个椭圆,另一个是要画出一个多边形。这样一个绘图的消息发出后,椭圆、多边形等类的对象接收到这个消息后各自执行不同的绘图函数。如图1-3所示,这就是多态性的表现。  具体来说,多态性(Polymorphism)是指类中同一函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。  继承性和多态性的结合,可以生成一系列虽类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征;由于多态性,针对相同的消息,不同对象可以有独特的表现方式,实现特性化的设计。  面向对象技术使软件的开发超越了过程式编程,而进入了简化应用程序开发的可重用编程世界。不象旧的编程方式,当程序的体积增长时,程序维护和调试并不变得更复杂。对象技术在两个级别发挥作用:  在数据级别,对象技术可以集成一个机构中的许多不同类型的信息,过去的信息已经不再兼容了。  在程序开发级别,对象技术提供模块化程序构造,这时,程序员在现有对象的基础之上进行开发。对象可以被其他对象再使用,以利用它们的过程,从而消除了当再次需要它们的时候,必须每次都重写这些代码。  由于无需改变或分解整个系统,所以再设计或扩展系统是很容易的。实际上,是放弃或修改这些模块,并且增加新的模块以提供增强的功能。  一个对象是一个完整的数据分组,它包括对数据进行处理的功能。在一个面向对象的环境,对象的数目是数不清的。它们可能包括一个数据库的记录、一个文件、一个物理资源、甚至是一个用户(它是用户的登录帐户)。为了使开发人员使用面向对象编程语言工作,对象是一个自满足模块,它包含数据、以及数据的结构、和处理数据的功能。  对象可以是下面情况的任何之一:  在一个面向对象操作系统中实现一个进程的代码,例如验证安全权限。  程序员和开发人员用于汇编程序的预定义代码模块。  来自一个应用程序的数据块,如一个绘图程序、电子表格或多媒体工具。  在一个数据库中的对象,例如库存条目或顾客。  在一个面向对象的数据库中,对象可以代表跟踪的商务中的实际实体,例如生产的产品、库存、顾客和厂商。相应地,在面向对象的操作系统中,对象也是一些实体,如文件、设备和用户,或构成一个复合文档的实体数据块。在面向对象的环境,首先定义基本的对象,然后围绕这些对象建造系统。  有许多潜在对象,并且它们可以归化到定义不同类型对象的层次化类(hierarchical classes)。父类可以对子类传递特性。让我们来考虑一个类“people”,它拥有两个子类“male”和“female”。这些子类又可以拥有它们自己的子类,如图O-3所示。每个子类都有从它的父亲处继承来的综合特征,以及它们自己的专有特征。另外,一些继承来的特征由于它们对子类不合适,而会被阻挡。  这和计算机如何关联昵?记住,现在我们在讨论存储许多不同数据类型,和访问许多不同类型应用程序数据的途径。通过按这种方式对数据分类,我们可以在一个对象内,直接包括进行抽取、显示、合并和打印的过程数据。如果需要,对数据进行分类,可以简化构造过程和改造(revision)过程。例如,一个数据块对象可能包括一个对这些数据按特定的方式进行排序的过程,它可以被许多不同的使用这个数据的应用程序所激活。

封装就是把普通的对象进行封装,对象的属性设为私有的,对外提供get和set方法,其他类只能通过get和set对对象属性值进行操作。继承是发生在两个类之间,一个类继承另一个类是说这个类属于另一个类,具有另一个类的所有属性和方法,同时它还可以有另一个类不具备的方法和属性。多态是建立在继承的基础上的,一个父类对象可以产生多个不同的子类对象,根据这些子类对象的不同可以具备不同的方法,也就是说表现出了不同的形态即多态

复制来的。。
1封装:
封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。通常情况下,只要记住让变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就基本上实现对象的封装,就很容易找出要分配到这个类上的方法了,就基本上算是会面向对象的编程了。把握一个原则:把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类中。
例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆,画圆的方法要分配给哪个对象呢?由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中定义成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性,人以后只是调用圆的画圆方法、表示给圆发给消息而已,画圆这个方法不应该分配在人这个对象上,这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变。一个更便于理解的例子就是,司机将火车刹住了,刹车的动作是分配给司机,还是分配给火车,显然,应该分配给火车,因为司机自身是不可能有那么大的力气将一个火车给停下来的,只有火车自己才能完成这一动作,火车需要调用内部的离合器和刹车片等多个器件协作才能完成刹车这个动作,司机刹车的过程只是给火车发了一个消息,通知火车要执行刹车动作而已。

抽象:
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是抽象。抽象包括行为抽象和状态抽象两个方面。例如,定义一个Person类,如下:
class Person
{
String name;
int age;
}
人本来是很复杂的事物,有很多方面,但因为当前系统只需要了解人的姓名和年龄,所以上面定义的类中只包含姓名和年龄这两个属性,这就是一种抽像,使用抽象可以避免考虑一些与目标无关的细节。我对抽象的理解就是不要用显微镜去看一个事物的所有方面,这样涉及的内容就太多了,而是要善于划分问题的边界,当前系统需要什么,就只考虑什么。

继承:
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

多态:
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的灵活性和扩展性。例如,下面代码中的UserDao是一个接口,它定义引用变量userDao指向的实例对象由daofactory.getDao()在执行的时候返回,有时候指向的是UserJdbcDao这个实现,有时候指向的是UserHibernateDao这个实现,这样,不用修改源代码,就可以改变userDao指向的具体类实现,从而导致userDao.insertUser()方法调用的具体代码也随之改变,即有时候调用的是UserJdbcDao的insertUser方法,有时候调用的是UserHibernateDao的insertUser方法:
UserDao userDao = daofactory.getDao();
userDao.insertUser(user);


半导体ic封装具体详细介绍下,谢谢!大神出来吧
5、 PQFP封装 PQFP是英文Plastic Quad Flat Package的缩写,即塑封四角扁平封装。PQFP封装的芯片引脚之间距离很小,管脚很细,一般大规模或超大规模集成电路采用这种封装形式,其引脚数一般都在100以上。6、 TSOP封装 TSOP是英文Thin Small Outline Package的缩写,即薄型小尺寸封装。TSOP内存封装技术的一个...

CPU封装的各类封装详细解释
1.I\/O引脚数虽然增多,但引脚之间的距离远大于QFP封装方式,提高了成品率2.虽然BGA的功耗增加,但由于采用的是可控塌陷芯片法焊接,从而可以改善电热性能3.信号传输延迟小,适应频率大大提高4.组装可用共面焊接,可靠性大大提高是今天较为常见的封装形式: “S.E.P.”是“Single Edge Processor”的缩...

ic封装有哪些
IC封装有多种类型。一、明确答案 IC封装类型包括塑料封装、陶瓷封装、金属封装和晶圆级封装等。二、详细解释 塑料封装:这是最常见的IC封装类型之一。塑料封装以其低成本和良好的电气性能广泛应用于各种集成电路中。这种封装方法通过使用模压成型技术,将芯片封装在一个塑料壳体内,从而保护芯片免受外部环境...

什么是对象类封装继承
三种继承关系中,保护继承在派生思想中可能用到,私有继承几乎没有用到过。共有继承是一种is a的关系,子类对象是一个父类对象,与共有继承相关的组合(该类的数据成员为其他类的对象)可以说是一种has a的关系,该对象中有一个其他对象 .例如,我们封装一个动物类,当我们想实现一个鸟类的类时,...

谁帮我详细解析下ic的封装尺寸是什么意思,图片如下:请尽可能全面详细...
封装尺寸简单地说就是:工件最终要求的外形完工尺寸(工件封装种类太多,在此就不说了),它有公差范围,如+-多少,或直接范围大小要求,如最大、最小限制尺寸,上图是国外绘制的图纸,在尺寸单位上和国内不同,国内一般不加注释的情下均以mm为单位。

DNF装备是怎么分类的?啥叫封装啊?谁给详细介绍下?
装备从种类可分为布甲 皮甲 轻甲 重甲 板甲 物理防御力的高低顺序同上 从品级可分为最上级 上级 中级 下级 最下级 好坏高低顺序同上 从稀有度来分可分为普通 高级 稀有 神器 史诗 颜色顺序同上 依次是白色 蓝色 紫色 粉色 橙色 装备稀有度顺序同上 封装是稀有装备和神器的特殊属性 一旦封装开封(就是...

CPU封装形式的各类封装详细解释
但BGA封装占用基板的面积比较大。虽然该技术的I\/O引脚数增多,但引脚之间的距离远大于QFP,从而提高了组装成品率。而且该技术采用了可控塌陷芯片法焊接,从而可以改善它的电热性能。另外该技术的组装可用共面焊接,从而能大大提高封装的可靠性;并且由该技术实现的封装CPU信号传输延迟小,适应频率可以提高很大...

谁能详细说一下数据封装的过程
以常见的OSI模型为例,它共分为七层,从下到上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,每层都对应不同的功能。为了实现对应功能,都会对数据按本层协议进行协议头和协议尾的数据封装,然后将封装好的数据传送给下层,各层的数据封装过程如下图所示。其中在传输层用TCP...

有谁能详细的讲一下QFP芯片的封装、类型、特点、测试座吗?
QFP芯片测试 根据鸿怡QFP芯片测试座工程师介绍:QFP封装是元件封装的一种形式 ,常用的封装材料有:塑料、陶瓷、玻璃 、金属等,根据市场需求,基本上采用塑料封装,其应用范围广泛,主要用于各种集成电路。QFP芯片测试座 芯片测试座分为翻盖式和下压式结构,现有适配芯片引脚间距为:0.4\/0.5\/0.8mm,...

...继承、抽象、多态分别是什么意思?请帮我解释的人性化点!_百度知 ...
封装:是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。多态性:是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活...

平江县18765516823: c#中请说明类的三大特性,并举例说明类的继承和多态. -
陆苛熊去: 1:封装的性:是面向对象的基础,面向对象系统的封装性其实是一种信息的隐藏技术, 2:继承的本质是实现代码重用,因而继承机制能缩短软件的开发周期,加快编程速度 3:多态性是面向对象系统的重要特性,对于同一消息,它可以根据发送消息的对象的不同采用 多种不同的处理方式.

平江县18765516823: 类与对象有什么关系?类有哪几种特性? -
陆苛熊去: 类是指定义对象的代码,所有对象都是根据一个类创建的. 我们一般都说面象对象编程有以下几个特性,抽象性,封装性,多态性,继承性, 这些特性也可以说是类的特性.

平江县18765516823: 在java中,如何理解类的封装性?
陆苛熊去: 书上说,实现类的封装可以实现: 1、隐藏类的实现细节. 2、让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作. 3、便于修改,增强代码的可维护性. 4、可进行数据检查 对于3: 例如: ...

平江县18765516823: Java三大特性,封装继承多态.面试官要我简单的描述其特性,求大神帮我总结下,面试直接能用的那种. -
陆苛熊去: 封装,继承,多态,这是JAVA面向对象编程的三大特性了. 一.封装:是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是类的特征之一,应该可以理解,像一些私有的,别的类不可以访问了啊,都有访问权限的,比较安全了. 二.继承:指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 继承有三种方式,实现继承、接口继承和可视继承. 三.多态:简单的说就是,允许将子类类型的指针赋值给父类类型的指针. 实现多态,有二种方式,方法覆盖,方法重载. JAVA博大精深,不是一言两语就可以说清的,我就不在这里多言了,简单的说了一点点,希望亲能采纳

平江县18765516823: 先谢谢了!java里封装、继承、抽象、多态分别是什么意思?请帮我解释的人性化点! -
陆苛熊去: 抽象:就是忽略一个主题中与当前目标无关的那些方面,以便充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中一部分细节.抽象包括两方面:一是过程抽象,二是数据抽象.继承:继承是一种联结类的层次模...

平江县18765516823: 谁给详细解释一下C++中的类 -
陆苛熊去: 在面向对象的程序设计中,有经常接触类、对象等专业名词;到底什么是类、什么是对象呢?在程序又是怎样运用呢?类是面向对象程序设计的核心,它实际是一种新的数据类型,也是实现抽象类型的工具,因为类是通过抽象数据类型的方法来...

平江县18765516823: c++类的封装性到底怎么理解?
陆苛熊去: 哦,你是对这句话不了解吧,比如说你已经编好了一个类A,里面用private定义了数据X,Y等等,用protect定义了函数F1,然后这个类别人进入内部是不知道什么,从用户的角度,这个类就是个黑匣子,他们使用时,输入数据,然后通过protect(外部和内部的接口)函数F1进入内部,然后具体在这个黑匣子里怎么运行的,他们就不知道了,他们只知道运行后,输出的结果,所以是封装的

平江县18765516823: java的封装性,多态性,继承性的概念并举例说明 -
陆苛熊去: 封装、继承、多态 比较抽象,只是一种概念,刚开始学的时候无需太过于深究,如果要你一上来学JAVA就理解这些东西,有点牵强,你所要做的就是至少看到代码知道这个用到的是什么.封装的概念好比一辆汽车,你学开车的时候只需学会诸...

平江县18765516823: C#中 类对数据的封装、继承、多态理解性的描述. -
陆苛熊去: 封装就是把客观事物封装成抽象的类,可以把自己的数据和方法只让可信的类或者对象操作.继承就是可以使用现有累的功能,并在无需重新编写原来的类的情况下,对这些功能进行扩展.多态就是将子类类型的指针赋值给父类类型的指针,并根据当前赋值给它的子对象的特性,以不同的方式运作.

平江县18765516823: 在java中类和对象是什么 -
陆苛熊去: 类是面向对象程序设计的核心,是通过抽象数据类型方法实现的一种数据类型,它同时包含了数据和对数据进行操作的函数.利用类可以实现数据的封装和隐藏.类是对某一类对象的抽象,而对象是某一种类的实例,类和对象是密切相关的....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网