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

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

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

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

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

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

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

函数重载

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

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

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://www.bamasay.cn/baimeng/4364.html

(32)

文章推荐

  • 什么是531行动计划

    531行动计划是指通过实施全民健康素养提升工程,普及健康知识与技能,倡导健康文明的生活方式,推进健康自我管理,促进医患共同决策,建立健全健康教育体系,提升全民健康素养,推动全民健身和全民健康深度融合。531主要内容如下:1、开发一套家庭健康自测工具。开发一个融健康自测量表和健康实用技能学习于一体的

    2026年04月14日
    34315
  • 找一篇关于【北京四合院的特点及文化内涵】文章...

    四合院,是由东、西、南、北四面房子围合起来形成的内院式住宅。北京四合院作为老北京人世代居住的主要建筑形式,驰名中外,世人皆知。首先,它的历史十分悠久。自元代正式建都北京,大规模规划建设都城时起,四合院就与北京的宫殿、衙署、街区、坊巷和胡同同时出现了。据元末熊梦祥所著《析津志》载:“大都街制,自南以至

    2026年04月14日
    34317
  • 昙花可以食用吗-

    相传昙花还有一段哀怨缠绵的故事,据说昙花是一个花神,她每天都开花,四季都很灿烂,她爱上了一个每天为她锄草的小伙子,后来玉帝知道了这件事,要拆散鸳鸯,玉帝把花神贬为一生只能开一瞬间的花,小伙子便送去灵鹫山出家,赐名韦驮,让他忘记花神。花神是忘不掉那个小伙子,她每天朝思暮想,在暮春十分都会为佛祖煎茶。于

    2026年04月15日
    34301
  • 辅助神器“诚信红包控制尾数软件”透视开挂辅助教程

    亲,这款游戏原来确实可以开挂的,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、正版软件、非诚勿扰。2026首推。全网独家,诚信可靠,无效果全额退款,本司推出的多功能作弊辅助软件。软件提供了各系列的麻将与棋牌辅助,有,型等功能。让玩家玩游戏

    2026年04月15日
    46322
  • 实测分享“牵手跑得快如何刷好牌”详细透视辅助教程

    亲,您好!这款游戏可以开挂,确实是有挂的,软件了解加QQ群咨询。很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的1、起手看牌2、随意选牌3、好牌机率4、控制牌型5、(注)公司软件防封号、防检

    2026年04月17日
    36318
  • 使用分享!八闽十三水可以开挂吗”辅助挂下载”(最新开挂教程)

    亲,您好!这款游戏可以开挂,确实是有挂的,软件了解加QQ群咨询。很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的1、起手看牌2、随意选牌3、好牌机率4、控制牌型5、(注)公司软件防封号、防检

    2026年04月17日
    43319
  • 必备科技“玩三公到底有没有挂了 ”开挂辅助脚本+详细开挂安装教程

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

    2026年04月24日
    33316
  • 开挂辅助工具“边锋斗地主可以装挂吗”透视开挂辅助教程

    打开点击测试直接进入q群看操作效果:本司针对手游进行,选择我们的四大理由:1、软件助手是一款功能更加强大的软件!无需打开直接搜索微信:2、自动连接,用户只要开启软件,就会全程后台自动连接程序,无需用户时时盯着软件。3、安全保障,使用这款软件的用户可以非常安心,绝对没有被封的危险存在。4、快速稳定,

    2026年05月03日
    29300
  • 实测分享“约局互娱有挂吗”(透视)其实确实有挂

    您好:wepoker辅助透视挂,软件加微信【】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服微信【】安装软件.1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场

    2026年05月05日
    29308
  • 2026首发科技“微乐江苏麻将怎么能赢”揭秘透视辅助万能挂用法

    是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我QQ客户群下载使用。新九哥怎么开挂?可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自定义新九哥怎么开挂?系统规律,只需要输入自己想要的开挂功能,一键便可以生成出新九哥怎么开挂?专用辅助器,不管你是

    2026年05月06日
    31309
  • 分享实测辅助“上品长乐能安装挂吗”(透视)开挂详细教程

    打开点击测试直接进入q群看操作效果:本司针对手游进行,选择我们的四大理由:1、软件助手是一款功能更加强大的软件!无需打开直接搜索微信:2、自动连接,用户只要开启软件,就会全程后台自动连接程序,无需用户时时盯着软件。3、安全保障,使用这款软件的用户可以非常安心,绝对没有被封的危险存在。4、快速稳定,

    2026年05月11日
    26302
  • 开挂辅助工具“科乐麻将有挂吗”(透视)开挂详细教程

    这是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,手机打牌可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自定义手机打牌系统规律,只需要输入自己想要的开挂功能,一键便可以生成出手机打牌专用辅助器,不管你是想分享给你好友或者手机打牌ia辅助都可以满足你的需求

    2026年05月23日
    14307

发表回复

本站作者才能评论

评论列表(3条)

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

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

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

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

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

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