问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++面向对象的三大特性82

发布网友 发布时间:2023-10-13 03:44

我来回答

3个回答

热心网友 时间:2024-12-10 20:25

面向对象的三个基本特征是:封装、继承、多态。封装
封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
继承
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。
要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。
在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。

继承
继承概念的实现方式有三类:实现继承、接口继承和可视继承。
Ø         实现继承是指使用基类的属性和方法而无需额外编码的能力;
Ø         接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
Ø         可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。
在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。
抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字 Interface 而不是 Class。
OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。

多态
多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
实现多态,有二种方式,覆盖,重载。
覆盖,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
其实,重载的概念并不属于“面向对象编程”,重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是“覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关!引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。”
那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

热心网友 时间:2024-12-10 20:25

你好,面向对象的三大特性是:封装性,继承以及多态,谢谢,

热心网友 时间:2024-12-10 20:26

封装性,继承性和多态性。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
吉林省内户口迁移有什么规定? 吉林户口迁移流程是什么 吉林省内户口迁移程序是什么? 德国留学银行开户经验 小脑萎缩还能恢复吗 做紫菜包饭都需要什么工具呢 大家有好的网店没 推荐一个 能一次买全... 会计所说的产值是什么 会计上生产总值是什么 企业生产总值是什么 在word的编辑状态下如何解除Word文档限制编辑 QQ邮箱的那个,圈A怎么弄5 面向对象程序设计的特点和优点52 董明珠名人事迹最感动的地方22 根据董明珠的事迹写篇议论文28 当董明珠还是销售经理的时候为什么她会把一个亿的合作伙伴给直接...6 很多人为什么会认为董明珠的销售经验像开了挂一样?1 帮我写一个姓名是张紫涵的姓名藏头诗7 2009国庆阅兵作文1748 阳台的tiao字怎么写 作文"我们的名字叫中国人"7 我们老师叫我下星期上台演讲,大家有什么好材料,急!!!16 如何选择合适的票据打印机?1 为啥打开穿越火线出现这个,卸载重新安装、杀毒后还是出现这个,... 总的量变过程中的部分质变,可区分为(多项选择题) 挑的大写字母 骑马与砍杀 光明与黑暗 中进村子洞后那四盏灯咋毁5 跪求骑马与砍杀1.011的序列码,本人家里没钱,买不上,网上...1 骑马与砍杀 光明与黑暗胖罗宾藏的好东西在哪里41 骑马与砍杀战团泡菜我怎么看不见血槽和技能槽。都是黑色,没血啊... ...选的是理化,我的理想是一本,可是我数学差,怎么办?? 邮箱格式那个圈里有个a的怎么打出来2 已知2的a次方=3,2的b次方=6,2的c次方=12,求a、b、c之间满足的等量关系... 填空:( )( )而出( )不可( )[至少填4个] 在美宜佳便利店购买的支付宝充值码输入的号码不是本人的,收不到... 被盗,账号被换,密码丢失,绑定的手机号被换,绑定了银行... 出已知2的a次方=3,2的b次方=6,2的c次方=12,试找出a,b,c之间的关系 是... 求助,我在美宜佳买了支付宝充值码 被盗了对方把密保手机号还有密码都换了把我微信好友全部删... 被盗了,密码手机号支付密码都改了,我已经冻结了,绑定银...3 被盗了,绑定的手机号被换了,银行卡取消绑定了,账号密码... 农行固定收益类的理财靠谱吗?3 所有汽车标志585 主板 华硕 K43Sd (英特尔 HM65 芯片组) 可以用...2 为什么闲聊这几天零钱提现不了,也发不出,也没有通知? 闲聊里的零钱很长时间都提现不了,到底什么情况?4 怎么通过红包交易单号找到对方? 闲聊里的零钱四个月还提现不出来,是不是骗子? 以知2的A次方=3,2的B次方=6,2的C次方=12求A.B.C的关系 qq下载到哪了? 上半身2度烫伤有多严重