C++继承详解,代码示例,通俗易懂
一、基本语法
继承:面向对象的三大特性之一
使用例子模拟实现的方法来理解更加容易:
模拟一个学习网页的页面
一个网站有很多的网页,每个网页有相同的部分和不同的部分
各个网页相同的部分可以采用继承的方法来写,这样就避免了写重复的代码
不采用继承
首先来看看 不采用 继承 技术来写的代码-----超级菜鸟级别:
#include<iostream>
using namespace std;
//逻辑上,模拟写一个网站
//网站有多个页面:
//页面一:C++ 页面
class Cpp {
public:
//页面的公共部分:
//页眉部分
void Header() {
cout << "首页 番剧 直播 游戏中心 会员购 漫画 赛事" << endl;
}
//底部部分
void Bottomer() {
cout << "评论 联系方式 投诉" << endl;
}
//左侧部分
void lefter() {
cout << "CPP Java Python" << endl;
}
public:
//CPP页面独有部分
void Viodeo() {
cout << "C++一天速成 C++实战项目" << endl;
}
};
//CPP页面的链接入口
void enterCPP() {
cout << "-----------------------CPP-------------------------" << endl;
Cpp c;
c.Bottomer();
c.Header();
c.lefter();
c.Viodeo();
cout << endl;
cout << endl;
}
//页面二:Java 页面
class Java {
public:
//页面的公共部分:
//页眉部分
void Header() {
cout << "首页 番剧 直播 游戏中心 会员购 漫画 赛事" << endl;
}
//底部部分
void Bottomer() {
cout << "评论 联系方式 投诉" << endl;
}
//左侧部分
void lefter() {
cout << "CPP Java Python" << endl;
}
public:
//CPP独有部分
void Viodeo() {
cout << "Java一天速成 Java实战项目" << endl;
}
};
//Java页面的链接入口
void enterJava() {
cout << "-----------------------Java-------------------------" << endl;
Java j;
j.Bottomer();
j.Header();
j.lefter();
j.Viodeo();
cout << endl;
cout << endl;
}
//页面三:Python 页面
class Python {
public:
//页面的公共部分:
//页眉部分
void Header() {
cout << "首页 番剧 直播 游戏中心 会员购 漫画 赛事" << endl;
}
//底部部分
void Bottomer() {
cout << "评论 联系方式 投诉" << endl;
}
//左侧部分
void lefter() {
cout << "CPP Java Python" << endl;
}
public:
//Python独有部分
void Viodeo() {
cout << "Python一天速成 Python实战项目" << endl;
}
};
//Python页面的链接入口
void enterPython() {
cout << "----------------------Python------------------------" << endl;
Python p;
p.Bottomer();
p.Header();
p.lefter();
p.Viodeo();
cout << endl;
cout << endl;
}
int main() {
//模拟点击 C++链接
enterCPP();
//模拟点击 Java链接
enterJava();
//模拟点击 Python链接
enterPython();
return 0;
}
运行结果:
使用继承技术
继承的优点:减少重复代码
基本语法:
class A: public B
A 为子类或者称为派生类
B 为父类或者称为基类
public 继承方式(有很多种)
即:
class 子类:继承方式 基类
//采用继承的技术来写:
#include<iostream>
using namespace std;
//公共页面:
class BasePage {
public:
//页面的公共部分:
//页眉部分
void