//4.6 继承 //继承是面向对象三大特征之一 //有些类与类之间存在特殊的关系,例如: //🐱 🐕 都是 动物 //我们发现 定义这些类时 下级别的成员除了拥有上一级的共性 还有自己的特性 //这个时候我们就可以考虑利用继承的技术 减少重复代码 //4.6.1 继承的基本语法 //例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表 只有中心内容不同 //接下来我们分别利用普通写法和继承写法来实现网页中的内容,看一下继承存在的意义和好处 #include //普通实现 //Java页面 //class Java //{ //public: // void header() // { // std::cout << "首页、公开课、登录、注册...(公共头部)" << std::endl; // } // void footer() // { // std::cout << "帮助中心、交流合作、站内地图...(公共底部)" << std::endl; // } // void left() // { // std::cout << "Java、Python、C++、...(公共分类列表)" << std::endl; // } // void content() // { // std::cout << "Java学习视频" << std::endl; // } //}; //Python页面 //class Python //{ //public: // void header() // { // std::cout << "首页、公开课、登录、注册...(公共头部)" << std::endl; // } // void footer() // { // std::cout << "帮助中心、交流合作、站内地图...(公共底部)" << std::endl; // } // void left() // { // std::cout << "Java、Python、C++、...(公共分类列表)" << std::endl; // } // void content() // { // std::cout << "Python学习视频" << std::endl; // } //}; //C++页面 //class Cpp //{ //public: // void header() // { // std::cout << "首页、公开课、登录、注册...(公共头部)" << std::endl; // } // void footer() // { // std::cout << "帮助中心、交流合作、站内地图...(公共底部)" << std::endl; // } // void left() // { // std::cout << "Java、Python、C++、...(公共分类列表)" << std::endl; // } // void content() // { // std::cout << "C++学习视频" << std::endl; // } //}; //继承实现 class BasePage { public: void header() { std::cout << "首页、公开课、登录、注册...(公共头部)" << std::endl; } void footer() { std::cout << "帮助中心、交流合作、站内地图...(公共底部)" << std::endl; } void left() { std::cout << "Java、Python、C++、...(公共分类列表)" << std::endl; } }; //继承的好处:减少重复代码 //语法: //class 子类 : 继承方式 //{ // 父类 //}; //子类也 称为 派生类 //父类也 称为 基 类 //Java页面 class Java :public BasePage { public: void content() { std::cout << "Java学习视频" << std::endl; } }; //Python页面 class Python :public BasePage { public: void content() { std::cout << "Python学习视频" << std::endl; } }; //C++页面 class Cpp :public BasePage { public: void content() { std::cout << "C++学习视频" << std::endl; } }; void test01() { std::cout << "Java下载视频页面如下:" << std::endl; Java ja; ja.header(); ja.footer(); ja.left(); ja.content(); std::cout << "--------------------------------" << std::endl; std::cout << "Python下载视频页面如下:" << std::endl; Python py; py.header(); py.footer(); py.left(); py.content(); std::cout << "--------------------------------" << std::endl; std::cout << "C++下载视频页面如下:" << std::endl; Cpp cpp; cpp.header(); cpp.footer(); cpp.left(); cpp.content(); } int main() { test01(); system("pause"); return 0; }