面向对象程序设计语言的三大特征

网上有关“面向对象程序设计语言的三大特征 ”话题很是火热,小编也是针对面向对象程序设计语言的三大特征寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

封装性 、继承性和多态性构成了面向对象程序设计语言的三大特性 。

封装性是基础,继承性是关键 ,多态性是扩充。

多态性是指对不同类的对象发出相同的消息将会有不同的行为。

消息主要是指对类的成员函数的调用,不同的行为是指不同的实现 。

本部分主要介绍多态性;动态联编;虚函数;纯虚函数和抽象类等重要内容。

函数重载

函数重载是多态性的一种简单形式,它是指允许在相同的作用域内 ,相同的函数名对应着不同的实现。

函数重载的条件是要求函数参数的类型或个数有所不同 。对成员函数的重载有以下三种表达方式:

1、在一个类中重载;

2、在不同类中重载;

3 、基类的成员函数在派生类中重载。

具有相同名字的重载函数是在编译时区分的,有以下三种区分方法:

1、根据参数的特征加以区别,例如:

show(int, char);

show (char*, float);

2、使用类作用域符“::”加以区分 ,例如:

Circle::show();

Point::show();

3 、根据类对象加以区分 ,例如:

acircle.show()调用Circle::show()

apoint.show()调用Point::show()

除了函数重载这种简单形式之外,C++ 还提供了一种更为灵活的特征机制——虚函数。

虚函数允许函数调用与函数体的联系在运行时才给出 。当需要同一接口、多种实现时,这种功能显得尤其重要 。

在讲述虚函数的概念之前 ,先介绍子类型及静态联编和动态联编的相关内容。

子类型

有一个特定的类型S,当且仅当它至少提供了类型T 的行为,则称类型S 是类型T 的子类型。

在继承关系中 ,若类B 是类A 以公有继承形式产生的派生类,则类B 包含了类A 的行为,并且它本身还可具有新的行为 ,可称类B 是类A 的一个子类型 。

若类B 是类A 的子类型,则类A 对象可操作的函数,类B 的对象也可以进行操作 ,称类B 适应类 A。

子类型的重要作用就在于类型适应,即在公有继承方式下,派生类的对象、指向派生类对象的指针和派生类对象的引用都适应于基类的对象 、指向基类对象的指针和基类对象的引用所能使用的场合。

子类型关系是不可逆的 。已知类B 是类A 的子类型 ,而认为类A 也是类B 的子类型是错误的。

例如:假设M 是基类 ,N 是以公有继承方式产生的派生类,函数void fun(M& P) 以基类M 的引用作为形参数,则

void main()

{

M m(7),q;

N n(3,8);

q=n; //派生类对象赋与基类对象

M *pm=new M(6);

N *pn=new N(5,9);

pm=pn; //派生类指针赋给基类指针

fun(*pn); //实参为派生类传递给基类的引用

}

由于子类型的类型适应性 ,main()中被注释的语句都是合法的。

根据类型适应性,在公有继承方式下,指向基类和派生类的指针变量是相关的 。如果B 是基类 ,D 是从B 公有派生出来的派生类,则在C++ 中,指向基类B 的指针P 也可以指向派生类D。当P 指向派生类D 的对象时 ,利用指针P 可以访问从基类B 继承的成员,但派生类D 自己定义的成员不能用P 访问(除非用显式类型转换)。

例如:下面是指向基类对象的指针指向派生类对象,从而访问从基类继承的成员的例子 。

#include <iostream.h>

#include <string.h>

class B

{

char name[80];

public:

void put_name(char *s)

{ strcpy(name,s); }

void show_name()

{ cout<<name<<“\n”; }

};

class D: public B

{

char phone_num[80];

public:

void put_phone(char *num)

{

strcpy(phone_num,num);

}

void show_phone()

{

cout<<phone_num<<“\n ”;

}

};

main()

{

B *p; B Bobj; D *dp; D Dobj;

p=&Bobj;

p->put_name(“Zhang Fang”);

p=&Dobj;

p->put_name(“Wang Ming”); //访问从基类继承的成员函数

Bobj.show_name();

Dobj.show_name();

dp=&Dobj;

dp->put_phone(“83768493 ”); //访问自己的成员

dp->show_phone();

p->show_phone(); //error!指向基类指针不能访问派生类定义的成员

((D *)p)->show_phone(); //强行类型转换

}

注意:希望用基类指针访问其公有派生类的特定成员 ,必须将基类指针用显式类型转换为派生类指针。根据类型适应性的原则,一个指向基类的指针可以用来指向其公有派生类的任何对象,这是C++ 实现运行时多态性的关键。

Python是一门面向对象的语言 。面向对象都有三大特性:封装 、继承、多态 。

1、封装

隐藏对象的属性和实现细节 ,仅对外提供公共访问方式。在python中用双下划线开头的方式将属性设置成私有的 。

好处:1. 将变化隔离;2. 便于使用;3. 提高复用性;4. 提高安全性 。

2 、继承

继承是一种创建新类的方式 ,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类 ,新建的类称为派生类或子类。即一个派生类继承基类的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待 。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系

Python中类的继承分为单继承和多继承

3、多态

一种事物的多种体现形式 ,函数的重写其实就是多态的一种体现 。Python中,多态指的是父类的引用指向子类的对象 。

实现多态的步骤:

1、定义新的子类

2 、重写对应的父类方法

3、使用子类的方法直接处理,不调用父类的方法

多态的好处:

(1)增加了程序的灵活性

(2)增加了程序可扩展性

关于“面向对象程序设计语言的三大特征”这个话题的介绍,今天小编就给大家分享完了 ,如果对你有所帮助请保持对本站的关注!

本文来自作者[白衣酒客]投稿,不代表百盟号立场,如若转载,请注明出处:https://tk.bamasay.cn/baimeng/4364.html

(29)

文章推荐

  • 几个关于汽车的冷知识

    网上有关“几个关于汽车的冷知识”话题很是火热,小编也是针对几个关于汽车的冷知识寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。几个关于汽车的冷知识开车,对于驾驶员来说并不陌生,下面说几个关于汽车的冷知识,其中有些即使是开车多年的老司机也未必知道哦!1.安全气囊

    2026年04月11日
    42318
  • 鲨鱼的科普知识

    鲨鱼,生活在海洋中,是海洋中的鱼类。鲨鱼早在恐龙出现前三亿年前就已经存在地球上,至今已超过五亿年,它们在近一亿年来几乎没有改变。鲨鱼,在古代叫作鲛、鲛鲨、沙鱼,是海洋中的庞然大物,所以号称“海中狼”。传统观念认为鲨鱼的软骨(即鱼翅)中蛋白质很高,但这是错误的。鸡蛋的蛋白质远远超过鱼翅。此外,研究显示

    2026年04月17日
    32312
  • 2026首发科技“福建大玩家怎么开挂”详细外挂透视辅助软件教程

    wepoker透视辅助软件怎么开挂教程视频分享装挂详细步骤在当今的网络游戏中,wepoker透视辅助软件作为一种经典的娱乐方式,吸引了无数玩家的参与。尤其是“wepoker透视辅助软件”,更是因其丰富的玩法和社交性而备受欢迎。然而,随着竞争的加剧,许多玩家开始寻求一些“外挂”来提升自己的胜率。详细开

    2026年04月19日
    28313
  • 关于幼儿园教案的一个问题

    网上有关“关于幼儿园教案的一个问题”话题很是火热,小编也是针对关于幼儿园教案的一个问题寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。幼儿园教案活动目标主要从三个方面来确定:1、知识2、

    2026年04月21日
    25314
  • 秦皇岛哪个游乐场好玩 ?

    网上有关“秦皇岛哪个游乐场好玩?”话题很是火热,小编也是针对秦皇岛哪个游乐场好玩?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。我是北戴河中学的学生我比较热爱生活喜欢旅游秦皇岛是一个非常著名的旅游胜地你来北戴河第一天可以先找到住宿的地方个体旅店一

    2026年05月01日
    33322
  • 梦见自己借钱的预兆

    网上有关“梦见自己借钱的预兆”话题很是火热,小编也是针对梦见自己借钱的预兆寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、梦见自己借钱的预兆一时盛运,而可成功发展之吉兆,但因根基薄弱,孤军奋斗,缺乏耐久力以致好景不长,故若轻浮疏忽便招致失败,戒之,但须知火

    2026年05月04日
    30308
  • 开挂辅助工具“微乐陕西三代如何拿好牌”(助赢详细开挂教程)

    【无需打开微信直接点击进群按钮自动申请加入QQ客户群;操作使用教程:最新一款“wepoker透视方法”透视挂!详细分享装挂步骤1、界面简单,没有任何广告弹出,只有一个编辑框。2、没有风险,里面的黑科技,一键就能快速透明。3、上手简单,内置详细流程视频教学,新手小白可以快速上手。4、体积小,不占用任何

    2026年05月06日
    32311
  • 滁州天气6.3到10天气

    网上有关“滁州天气6.3到10天气”话题很是火热,小编也是针对滁州天气6.3到10天气寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。滁州天气-实时:27°C雷阵雨东南风3-4级湿度:58%今天(周六)21/28°C雷阵雨转中雨明天(周日)22/30

    2026年05月16日
    19304
  • 上海纵横钢结构制造有限公司怎么样?

    上海纵横钢结构制造有限公司是2000-07-27在上海市闵行区注册成立的有限责任公司(自然人独资),注册地址位于上海市闵行区联达路236号7幢。上海纵横钢结构制造有限公司的统一社会信用代码/注册号是91310112632157946R,企业法人仇明辉,目前企业处于开业状态。上海纵横钢结构制造有限公司

    2026年05月18日
    20310
  • 奔驰e260运动是不是全进口

    没有E260运动,只有E260L运动,这是国产的。进口的只有E260?Coupe及E260?敞篷版,都是两门的。你好请问现在奔驰50万左右的敞篷跑车有哪些?问题一:四门敞篷车有哪些呀?因为4们敞篷车的车架非常脆弱不适合时代,所以现代的没有了,都是两门敞篷。以前有:荷兰皇家版4门敞篷380S

    2026年05月19日
    14313
  • 造型别致 海外全新宝马5系旅行版车型实车来袭

    撰写|qay日前,天天汽车获悉,海外全新宝马5系旅行版车型实车图来袭!新车外观大部分延续了家族式的设计语言,相信未来进入国内会得到很多消费者的热衷。外观方面,新车前格栅采用家族式双肾设计,大灯组狭长动感,搭配贯穿式前保险杠,底部进气格栅为蜂窝状布局,两侧采用硕大的多边形进气口。车身侧面,旅行车的样貌

    2026年05月19日
    16313
  • 实测神器辅助“微乐麻将挂在哪里买”揭秘透视辅助万能挂用法

    >>您好:这款游戏确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,1.推荐使用‘,通过添加客服安装这个软件.打开.2.在设置DD辅助功能DD微信麻将辅助工具里.

    2026年05月24日
    12313

发表回复

本站作者才能评论

评论列表(3条)

  • 白衣酒客的头像
    白衣酒客 2026年04月28日

    我是百盟号的签约作者“白衣酒客”

  • 白衣酒客
    白衣酒客 2026年04月28日

    本文概览:网上有关“面向对象程序设计语言的三大特征”话题很是火热,小编也是针对面向对象程序设计语言的三大特征寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够...

  • 白衣酒客
    用户042807 2026年04月28日

    文章不错《面向对象程序设计语言的三大特征》内容很有帮助