美文网首页
OOP思想--封装和继承

OOP思想--封装和继承

作者: 星星326 | 来源:发表于2023-10-31 06:59 被阅读0次

本篇主要讲面向对象的封装和继承特性,另一个特性多态会在后面的文章中讲到。

目录:

 面向对象编程过程
 封装的实现
 继承的方式
 继承后对象的构造顺序
 继承的种类

一、什么是面向对象编程(Object Oriented programming,OOP)思想?

在学习C++之前我们一直说面向过程,也就是对于一个需要解决的问题,进行分析,得出每个步骤的实现和实现顺序的过程。所以自然而然的就能够进行面向过程编程,既只需用函数实现这些步骤,然后在使用的时候一个一个进行调用即可。但是为了实现代码的可移植性和可扩展性,就有了面向对象。就是把构成问题的事物分解成各个对象,然后描述某一类对象在解决整个问题步骤中的行为。用一幅图来描述面向对象编程的过程。

image.png

有了面向对象编程技术,因此(程序=算法+数据结构)变为了(程序=基于对象的算法+以对象为最小单位的数据结构)

二、封装:隐藏内部实现。

封装如何实现?在C++里边,封装和隐藏是通过访问限定符来实现。

三种访问限定符:

public:任意位置都能访问成员变量。

protected:只在类中可以访问,包括继承和派生中派生类可以访问父类的保护成员。

private:只有在自己的类中可以访问,但是友元关系可以打破。

说到这块了,顺便也说一下struct和class的区别

1、对于class来说定义的变量和函数默认是private,对于struct来说默认是public

2、在struct类中定义该类成员要写全称。//struct B{struct B *p;};

3、空结构体:

在windows上:C语言不允许定义空结构体、C++定义空结构体大小为1个字节。

在Linux上:C语言定义空结构体大小为0个字节、C++定义空结构体大小为1个字节。

class定义空结构体为1个字节。

三、继承:实代码复用。

(1)、继承的方式

有三种访问限定自然也就有三种继承关系咯!分别叫做共有继承、保护继承、私有继承。如果不给出继承关系默认是私有继承。

写法如下:

class Base
{
    ……
};
class derive : Base
{
    ……
};

在C++中冒号用到两个地方,分别是继承和初始化列表中。
不同的继承方式又对成员变量的访问有什么影响呢?用一张表总结一下:

基类中变量的访问限定 派生类中继承过来的访问限定 外部对派生类中成员变量的访问
共有继承 public public
protected protected 不能
private 不可见 不能
保护继承 public protected 不能
protected protected 不能
private 不可见 不能
私有继承 public private 不能
protected private 不能
private 不可见 不能

(2)、继承后对象的构造顺序

1、基类构造函数:如果有多个基类,构造函数的调用顺序是某类在类派生表中出现的顺序,而不是他们在成员初始化列表中出现的顺序。

2、成员类对象的构造函数:如果有多个成员类对象,则构造顺序是对象在类中被申明的顺序,而不是他们出现在成员初始化列表中的顺序。

3、派生类构造函数。

(3)、继承的种类

1、单一继承

image.png

2、多重继承

image.png

3、重复继承

image.png

对于这几种继承其中对成员变量的访问还是结合上面的表格分析即可。

https://blog.csdn.net/zhuoya_/article/details/80027757

相关文章

  • 对象_原型_木桶布局

    1. OOP 指什么?有哪些特性 OOP指的是面向对象编程 三大特性:封装、继承、多态1.封装封装指的是将方法和属...

  • iOS 由OOP到POP

    OOP 的核心思想 - 使用封装和继承,将一系列相关的内容放到一起 1.OOP面临的这几个问题 1.1横切关注点:...

  • 专业技术面试题

    1.oop编程思想 面向对象编程,以对象为中心,强调对象的“抽象”、“封装”、“继承”、“多态” 2.JavaWe...

  • Javascript基础进阶(十六)JS中面向对象的理解、继承、

    面向对象编程OOP 它是一种编程思想,我们的编程或者学习其实是按照 类、实例来完成的类: 继承、封装、多态 封装...

  • JS面向对象整理篇一——基础概念衍生

    JS面向对象 oop 继承:实例可以继承A对象中的方法和属性,减少代码冗余 封装:对象把实现过程封装在方法中,调用...

  • C++ 考试知识要点

    考试知识要点 OOP = 继承(inheritance)+多态(polymorphism)+封装(encapsul...

  • 编程思想: 面向切面编程(Aspect-Oreinted Pro

    面向对象编程(Object-Orentied Programming - OOP)的特点是继承, 多态和封装, 其...

  • 编程思想总结

    1、编程中思想 OOP:面向对象编程,用程序总结归纳生活中一切事物。 封装,继承,多态。 BOP:面向Bean编程...

  • 继承

    继承 oop(面向对象的三大特性):继承、封装、多态 单继承 class p:... p = 2...cl...

  • Dart中的对象、类

    面向对象编程(OOP)的三个基本特征是:封装、继承、多态 封装:封装是对象和类概念的主要特性。封装,把客观事物封装...

网友评论

      本文标题:OOP思想--封装和继承

      本文链接:https://www.haomeiwen.com/subject/yyfiidtx.html