|
@@ -0,0 +1,191 @@
|
|
|
+//4.6 继承
|
|
|
+
|
|
|
+//继承是面向对象三大特征之一
|
|
|
+//有些类与类之间存在特殊的关系,例如:
|
|
|
+
|
|
|
+//🐱 🐕 都是 动物
|
|
|
+
|
|
|
+//我们发现 定义这些类时 下级别的成员除了拥有上一级的共性 还有自己的特性
|
|
|
+
|
|
|
+//这个时候我们就可以考虑利用继承的技术 减少重复代码
|
|
|
+
|
|
|
+
|
|
|
+//4.6.1 继承的基本语法
|
|
|
+
|
|
|
+//例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表 只有中心内容不同
|
|
|
+//接下来我们分别利用普通写法和继承写法来实现网页中的内容,看一下继承存在的意义和好处
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#include <iostream>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//普通实现
|
|
|
+
|
|
|
+//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;
|
|
|
+}
|
|
|
+
|