1、继承的基本语法.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. //4.6 继承
  2. //继承是面向对象三大特征之一
  3. //有些类与类之间存在特殊的关系,例如:
  4. //🐱 🐕 都是 动物
  5. //我们发现 定义这些类时 下级别的成员除了拥有上一级的共性 还有自己的特性
  6. //这个时候我们就可以考虑利用继承的技术 减少重复代码
  7. //4.6.1 继承的基本语法
  8. //例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表 只有中心内容不同
  9. //接下来我们分别利用普通写法和继承写法来实现网页中的内容,看一下继承存在的意义和好处
  10. #include <iostream>
  11. //普通实现
  12. //Java页面
  13. //class Java
  14. //{
  15. //public:
  16. // void header()
  17. // {
  18. // std::cout << "首页、公开课、登录、注册...(公共头部)" << std::endl;
  19. // }
  20. // void footer()
  21. // {
  22. // std::cout << "帮助中心、交流合作、站内地图...(公共底部)" << std::endl;
  23. // }
  24. // void left()
  25. // {
  26. // std::cout << "Java、Python、C++、...(公共分类列表)" << std::endl;
  27. // }
  28. // void content()
  29. // {
  30. // std::cout << "Java学习视频" << std::endl;
  31. // }
  32. //};
  33. //Python页面
  34. //class Python
  35. //{
  36. //public:
  37. // void header()
  38. // {
  39. // std::cout << "首页、公开课、登录、注册...(公共头部)" << std::endl;
  40. // }
  41. // void footer()
  42. // {
  43. // std::cout << "帮助中心、交流合作、站内地图...(公共底部)" << std::endl;
  44. // }
  45. // void left()
  46. // {
  47. // std::cout << "Java、Python、C++、...(公共分类列表)" << std::endl;
  48. // }
  49. // void content()
  50. // {
  51. // std::cout << "Python学习视频" << std::endl;
  52. // }
  53. //};
  54. //C++页面
  55. //class Cpp
  56. //{
  57. //public:
  58. // void header()
  59. // {
  60. // std::cout << "首页、公开课、登录、注册...(公共头部)" << std::endl;
  61. // }
  62. // void footer()
  63. // {
  64. // std::cout << "帮助中心、交流合作、站内地图...(公共底部)" << std::endl;
  65. // }
  66. // void left()
  67. // {
  68. // std::cout << "Java、Python、C++、...(公共分类列表)" << std::endl;
  69. // }
  70. // void content()
  71. // {
  72. // std::cout << "C++学习视频" << std::endl;
  73. // }
  74. //};
  75. //继承实现
  76. class BasePage
  77. {
  78. public:
  79. void header()
  80. {
  81. std::cout << "首页、公开课、登录、注册...(公共头部)" << std::endl;
  82. }
  83. void footer()
  84. {
  85. std::cout << "帮助中心、交流合作、站内地图...(公共底部)" << std::endl;
  86. }
  87. void left()
  88. {
  89. std::cout << "Java、Python、C++、...(公共分类列表)" << std::endl;
  90. }
  91. };
  92. //继承的好处:减少重复代码
  93. //语法:
  94. //class 子类 : 继承方式
  95. //{
  96. // 父类
  97. //};
  98. //子类也 称为 派生类
  99. //父类也 称为 基 类
  100. //Java页面
  101. class Java :public BasePage
  102. {
  103. public:
  104. void content()
  105. {
  106. std::cout << "Java学习视频" << std::endl;
  107. }
  108. };
  109. //Python页面
  110. class Python :public BasePage
  111. {
  112. public:
  113. void content()
  114. {
  115. std::cout << "Python学习视频" << std::endl;
  116. }
  117. };
  118. //C++页面
  119. class Cpp :public BasePage
  120. {
  121. public:
  122. void content()
  123. {
  124. std::cout << "C++学习视频" << std::endl;
  125. }
  126. };
  127. void test01()
  128. {
  129. std::cout << "Java下载视频页面如下:" << std::endl;
  130. Java ja;
  131. ja.header();
  132. ja.footer();
  133. ja.left();
  134. ja.content();
  135. std::cout << "--------------------------------" << std::endl;
  136. std::cout << "Python下载视频页面如下:" << std::endl;
  137. Python py;
  138. py.header();
  139. py.footer();
  140. py.left();
  141. py.content();
  142. std::cout << "--------------------------------" << std::endl;
  143. std::cout << "C++下载视频页面如下:" << std::endl;
  144. Cpp cpp;
  145. cpp.header();
  146. cpp.footer();
  147. cpp.left();
  148. cpp.content();
  149. }
  150. int main()
  151. {
  152. test01();
  153. system("pause");
  154. return 0;
  155. }