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

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

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

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

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

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

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

函数重载

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

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

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

(30)

文章推荐

  • 什么是历史观

    网上有关“什么是历史观”话题很是火热,小编也是针对什么是历史观寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。历史观又称“社会历史观”。人们对社会历史的根本观点、总的看法,是世界观的组成部分。世界观与历史观是相互影响、相互制约的。历史观的基本问

    2026年04月12日
    31317
  • 王伟的人物评价

    2011年12月6日18时30分,香港艺人王从希在自己的新浪微博透露,其父——前TVB演员王伟于日前去世,现已入土为安。有报道称,王伟是死于胃癌。王伟,一个对中国人来说再普通不过的姓名。如果《现代汉语词典》要给这个词语一个解释的话,大约应该是这样的:王,常用姓氏,在百家姓位列第八;伟,中国男子常用名

    2026年04月17日
    36314
  • 关于爱心的英语名言

    网上有关“关于爱心的英语名言”话题很是火热,小编也是针对关于爱心的英语名言寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、爱是自然而来的,不是买得到的。Loveisnat

    2026年04月21日
    34307
  • 新捷达怎么样优点缺点-

    网上有关“新捷达怎么样优点缺点?”话题很是火热,小编也是针对新捷达怎么样优点缺点?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。新捷达优点缺点:1、优点是车身采用双层镀锌板,耐腐蚀性好;车壳钣金质量好,质感不错;大众的牌子硬,不是日系,不容易招惹愤青;虽然同

    2026年04月25日
    33322
  • 女人梦见拜菩萨是什么预兆

    网上有关“女人梦见拜菩萨是什么预兆”话题很是火热,小编也是针对女人梦见拜菩萨是什么预兆寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。不同人梦见拜菩萨的梦境解析怀孕的人梦见拜菩萨,预示夏占生女,秋占生男,防烫伤。做生意的人梦见拜菩萨,代表未能顺利,三思而行,宜

    2026年04月25日
    33323
  • 实测神器辅助“如何控制微信红包尾数单双挂”详细透视辅助教程

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

    2026年05月05日
    35312
  • 现金类理财产品是什么意思

    网上有关“现金类理财产品是什么意思”话题很是火热,小编也是针对现金类理财产品是什么意思寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。现金类理财产品指的是所有能为投资者进行现金管理服务的理财产品,因此现金类理财产品也可以被称为现金管理类理财产品。理财产品即由商

    2026年05月05日
    33315
  • 东阳光科股票(东阳光科股票股)

    网上有关“东阳光科股票(东阳光科股票股)”话题很是火热,小编也是针对东阳光科股票(东阳光科股票股)寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。东阳光科股票(股票代码:东阳光科股票股)是一家在中国深圳证券交易所上市的科技公司。该公司专注于太阳能光伏产品的研发

    2026年05月11日
    38306
  • 玩家辅助神器:手机打牌开挂在哪里购买”(免费)开挂辅助教学(最新辅助开挂教程)

    您好:wepoker网页版透视方法这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的1.wepoker网页版透视方法这款游戏可以开挂,确实是有挂的,通过点击右下

    2026年05月13日
    28306
  • 分享实测辅助“QQ微信红包埋雷10个包控制尾数开挂软件”(透视)开挂辅助脚本+详细开挂安装教程

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

    2026年05月19日
    16319
  • 上网办公看视频买什么样的笔记本电脑好?

    网上有关“上网办公看视频买什么样的笔记本电脑好?”话题很是火热,小编也是针对上网办公看视频买什么样的笔记本电脑好?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。第一,肯定要买的是近半年内生产的电脑,这样有利于你5年时间甚至更长时间使用;第二,要清楚能出多少钱

    2026年05月22日
    14306
  • 【汽车人】柳暗花明!4月第二周车市销量同比转正

    网上有关“【汽车人】柳暗花明!4月第二周车市销量同比转正”话题很是火热,小编也是针对【汽车人】柳暗花明!4月第二周车市销量同比转正寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。《汽车人》前不久认为对今年二季度的我国车市不必过于悲观。没想到的是,尽管全国仍

    2026年05月26日
    24303

发表回复

本站作者才能评论

评论列表(3条)

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

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

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

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

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

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