4.1派生类的概念

这篇具有很好参考价值的文章主要介绍了4.1派生类的概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


为什么使用继承

所谓继承就是从先辈处得到属性和行为特征。类的继承就是新的类从已有类那里得到已有特征。这样做的目的是:减少代码的重复。

派生类的声明

4.1派生类的概念

声明派生类的一般公式 :

class 派生类名:[继承方式] 基类名

{

        派生类新增的数据成员和成员函数;

}

“基类名”是已经声明的类的名称,“派生类名”是继承原有类的特征而生成的新类的名称。

继承方式有三种:

4.1派生类的概念

如果不显示地给出继承方式关键字,系统默认为私有继承(private)。类的继承方式指定了派生类成员以及类对象对于从基类继承来的成员的访问权限。

派生类的构成 

1)派生类从基类接受成员

在C++类的继承中,派生类把基类的全部成员(除构造函数和析构函数之外)接收过来。

2)派生类不能对接受基类的成员进行选择,但是可以对这些成员进行某些调整。

调整包括两个方面:

一.一方面是改变基类成员在派生类中的访问属性,这主要是通过派生类声明时的继承方式来控制的。

二.另一方面是派生类可以对基类的成员进行重定义,即在派生类中声明一个与基类成员同名的成员,则派生类中的新成员会覆盖基类的同名成员,这时在派生类中或通过派生类对象,直接使用成员名就只能访问到派生类声明的同名成员。重定义也支持重载。

3)在派生类中增加新的成员。

在派生类中增加新的成员体现了派生类对基类功能的扩展,是继承和派生机制的核心。

由于在继承过程中,基类的构造函数和析构函数是不能被继承的,因此在声明派生类时,一般需要在派生类中定义新的构造函数和析构函数。

基类成员在派生类中的访问属性

派生类可以继承基类中除了构造函数与析构函数之外的成员,但是这些成员的访问属性在派生过程中是可以调整的。从基类继承来的成员在派生类中的访问属性是由继承方式控制的。

类的继承方式有三种,公有,私有,保护。

1)基类中的私有成员。

无论哪种继承方式,基类中的私有成员不允许派生类继承,即在派生类中是不可直接访问的。

2)基类中的公有成员。

当继承方式为公有(public)继承时,基类中的所有公有成员在派生类中仍以公有成员的身份出现。

当继承方式为私有(private)继承时,基类中的所有公有成员在派生类中都以私有成员的身份出现。

当继承方式为保护(protected)继承时,基类中所有公有成员在派生类中都以保护成员的身份出现。

3)基类中的保护成员。

当继承方式为公有继承时,基类中所有保护成员在派生类中仍以保护成员的身份出现。

当继承方式为私有继承时,基类中所有保护成员在派生类中以私有成员的身份出现。

当继承方式为保护继承时,基类中所有保护成员在派生类中仍以保护成员的身份出现。

所以我们声明派生类的继承方式,一般为公有继承,公有继承不改变基类成员在派生类中的访问属性。

派生类对基类成员的访问规则

派生类对基类成员的访问形式主要有以下两种:

1)内部访问。由派生类中新增的成员函数对基类继承来成员访问。

2)对象访问。在派生类外部,通过派生类的对象对从基类继承来的成员的访问。

一、私有继承的访问规则

经过了私有继承之后,所有基类的成员都成为了派生类的私有成员或者不可访问成员,如果进一步派生的话,基类的全部成员都无法在新的派生类中被访问。因此,私有继承之后,基类的成员无法在以后的派生类中再发挥作用,实际是中止基类在之后继续派生,这种情况比较少。

二、公有继承的访问规则

当类继承方式为公有继承时,基类的公有成员被继承到派生类仍作为公有成员,派生类的公有成员可以直接访问它们,在类的外部,可以通过派生类的对象访问。

公有继承时,基类的保护成员被继承到派生类中,仍未保护成员,可以在类内通过成员函数访问,派生类的派生类也可以访问它,可以继续派生,但是我们派生类的对象不能直接访问基类中继承的保护成员,因为保护成员只能由类内和派生类访问。

公有继承时,基类的私有成员不允许派生类继承,无论是派生类的成员函数还是派生类的对象都不能直接访问到基类的私有成员。

强调:

不要以为公有继承就能访问到基类的私有成员了。私有成员是不能被继承到的。

保护继承的访问规则

当类的继承方式为保护继承时,基类的公有成员和保护成员被继承到派生类中都是保护成员,派生类的其他成员可以访问它们,但是派生类的对象,不能直接在类外访问保护成员。基类的私有不允许被继承,在保护继承方式中也一样。文章来源地址https://www.toymoban.com/news/detail-420787.html

到了这里,关于4.1派生类的概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为什么 Java 中不允许多继承?

    思考现在既定事实背后的原因 多继承会导致“钻石问题” 类 B、C 继承父类 A,类 D 同时继承了 B 和 C(假设存续多继承) 下述图表的形状类似于钻石(或者菱形),因此这个问题被形象地称为钻石问题(菱形继承问题) 以上述例子说明: 类 D 初始化时,会执行两次类 A 的初

    2023年04月14日
    浏览(34)
  • 实验三 Java类的继承与派生

    Student IStudentDAO StudentDAOImpl MainClass

    2024年02月05日
    浏览(41)
  • 为什么Java要求多用组合,少用继承?

    最近有一个要好的朋友去阿里大厂面试Java高级工程师,在第二轮面试的过程中,面试官提了一个问题:“解释下Java项目中为什么要求多用组合,少用继承?”。朋友觉得这个题目既熟悉,又陌生,毕竟继承与组合在一开始学习Java时就要求掌握的,但是教学过程中只是说了它

    2024年02月05日
    浏览(72)
  • 头歌Educoder实验:C++ 面向对象 - 类的继承与派生

    第1关:公有继承 —— 学生信息类 任务描述 本关任务:采用公有继承设计学生信息类。 相关知识 继承 继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一。简单的说,继承是指一个对象直接使用另一对象的属性和方法。 C++ 中的继承关系就好比现实生

    2024年02月04日
    浏览(108)
  • 【从JVM看Java,三问继承和多态,是什么?为什么?怎么做?深度剖析JVM的工作原理】

    《计算机底层原理专栏》:欢迎大家订阅学习,能够帮助到各位就是对我最大的鼓励! 文章目录 系列文章目录 前言 一、JVM是什么 二、 什么是继承 三、 什么是多态 总结         这篇文章聚焦JVM的实现原理,我更专注于从一个语言的底层原理,去剖析他的语法所实现的意义

    2024年02月05日
    浏览(39)
  • <c++> 类的继承 | 基类与派生类 | 构造函数与析构函数

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 从零开始的 c++ 之旅 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪 c++ 面向对象三大特性: 封装,继承,多态 。通过本文我们将了解什么是类的

    2023年04月20日
    浏览(38)
  • 什么是OSPF?为什么需要OSPF?OSPF基础概念

    开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。如无特殊说明,本文中所指的OSPF均为OSPF Version 2。 目录 为什么

    2024年01月20日
    浏览(42)
  • 【译】为什么AI难以概念化时间

    原作:FNTGAI 引言:如何弥合AI与先验概念之间的鸿沟   时间不是你能看到、听到或触摸到的东西。这就是康德所说的“先验”,意味着它在感官中没有对应物。你无法给时间贴标签或分类。这使得AI很难建立时间概念。例如,考虑一下当您询问 ChatGPT 您与它交谈了多长时间时

    2024年02月20日
    浏览(35)
  • 为什么说 $CHAPZ 是被严重低估的 AI 概念资产?

    在新一轮牛市周期下,除了 DePIN、Layer2 等板块涌入大量资金外,AI 叙事也成为了行业关注的新焦点。事实上,在近半年的时间内,AI 概念的加密资产就已经遍地开花,包括 WLD、RNDR、AGIX、FET 等代币均有了数倍涨幅。而在今年 2 月后,随着 OpenAI 发布 Sora 模型再次将 AI 概念推

    2024年03月19日
    浏览(40)
  • 神经网络基础-神经网络补充概念-55-为什么是ML策略

    “ML策略”(Machine Learning Strategies)是指在解决机器学习问题时,采取的一系列方法、技巧和策略。选择适当的ML策略对于获得高质量的模型和结果非常重要。以下是为什么要考虑ML策略的一些原因: 问题适应性:不同的机器学习问题可能需要不同的策略。ML策略允许您根据问

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包