怎样给自己建立网站,杭州网站维护外包,微信营销软件平台,加油站网架1 ~ 继承基础与概念解析 1.1 继承的核心概念 1.1.1 继承的本质与定义 继承#xff08;inheritance#xff09;本质是类设计层次的复用。 继承机制是面向对象程序设计使代码可以复用的最重要的手段#xff0c;它允许我们在保持原有类特性的基础上进行扩展#xff0c…1 ~ 继承基础与概念解析1.1 继承的核心概念1.1.1 继承的本质与定义继承inheritance本质是类设计层次的复用。继承机制是面向对象程序设计使代码可以复用的最重要的手段它允许我们在保持原有类特性的基础上进行扩展增加方法成员函数和属性成员变量这样产生新的类称派生类。继承呈现了面向对象程序设计的层次结构体现了由简单到复杂的认知过程。以前我们接触的函数层次的复用继承是类设计层次的复用。假如我们现在要设计一套图书管理系统/学生管理系统甚至于说学校的门禁系统这里插一句题外话我们需要做的第一步就是设计定义出有哪些类如学生、老师、保安、食堂阿姨。有些信息/方法是独有的有些则是公共的大家都有。同理有些成员是公共的每个都写出来就实在是太恶心了为了方便我们就要用到接下来我们要介绍的继承——复用——直接用别人的只不过以前复用的是函数现在的继承变成了类设计层面的复用。1.1.2 【拓展视野】企业组织架构与类设计的类比这里既然说到设计了艾莉丝就插个题外话虽然我们大多是奔着研发岗 / 测试开发岗 / 测试岗去的但还是要懂一些产品设计的知识当然产品设计是由公司里面的产品经理把控的有些小一点的公司可能人手不够很多人身兼数职比如产品经理既是产品经理又是项目经理甚至于在小公司老板自己可能就是产品经理这里提到的项目经理已经是管理层了偏领导既然都介绍到公司的岗位划分了我们就再简单了解一下吧——1.1.3 类体系设计方法论——第一步设计定义出有哪些类公共的特性抽取出来放到一个公共类父类/基类里面——1.1.4 继承机制的优势与便利性下面我们看到没有继承之前我们设计了两个类Student和TeacherStudent和Teacher都有姓名/地址电话/年龄等成员变量都有identity身份认证的成员函数设计到两个类里面就是冗余的。当然他们也有一些不同的成员变量和函数比如老师独有成员变量是职称学生的独有成员变量是学号学生的独有成员函数是学习老师的独有成员函数是授课——代码语言javascriptAI代码解释class Student { public: // 进⼊校园/图书馆/实验室刷⼆维码等⾝份认证 void identity() { // ... } // 学习 void study() { // ... } protected: string _name peter; // 姓名 string _address; // 地址 string _tel; // 电话 int _age 18; // 年龄 int _stuid; // 学号 }; class Teacher { public: // 进⼊校园/图书馆/实验室刷⼆维码等⾝份认证 void identity() { // ... } // 授课 void teaching() { //... } protected: string _name 艾莉丝; // 姓名那我们就把公共的成员都放到Person类中Student和teacher都继承Person就可以复用这些成员就不需要重复定义了这样省去了很多麻烦——代码演示如下——代码语言javascriptAI代码解释class Person { public: // 进入校园/图书馆/实验室刷二维码等身份认证 void identify() { cout void identify() _name endl; } void func() { cout _age endl; } protected: string _name 艾莉丝; // 姓名 string _address; // 地址 string _tel; // 电话 private: int _age 18; // 年龄 }; class Student : public Person { public: // 学习 void study() { //// . . . //// 基类私有成员类比“爸爸的私房钱”派生类中不可见语法上限制不能直接使用 //cout _age endl; // 但是可以间接使用 func(); } protected: int _stuid; // 学号 }; class Teacher : public Person { public: // 授课 void teaching() { // . . . } protected: string _title; // 职称 }; int main() { Student s; Teacher t; s.identify(); s.study(); return 0; }运行一下——1.2 继承语法与访问控制1.2.1 继承定义的标准格式下面我们看到Person是基类也称作父类Student是派生类也称作子类。这主要是因为因为翻译的原因所以既叫基类 / 派生类也叫父类 / 子类