面向对象编程中的三大特性之一就是“继承”。继承是类与类之间的一种特殊关系,它允许我们创建一个新类(称为“子类”或“派生类”)来继承另一个类(称为“基类”或“父类”)的特性。这种关系使得子类能够复用父类的代码,并可以添加或修改父类的行为。
示例:普通实现
考虑一个简单的情况,我们有三个页面:Java页面、Python页面和C++页面。这些页面有共同的部分,如公共头部、公共底部和公共分类列表。
class Java {
void header() {
System.out.println("首页 公开课 登录 注册...(公共头部)");
}
void footer() {
System.out.println("帮助中心,交流合作 ,站内地图....(公共底部)");
}
void left() {
System.out.println("java python c++...(公共分类列表)");
}
void content() {
System.out.println("java学科视频");
}
}
class Python {
void header() {
System.out.println("首页 公开课 登录 注册...(公共头部)");
}
void footer() {
System.out.println("帮助中心,交流合作 ,站内地图....(公共底部)");
}
void left() {
System.out.println("java python c++...(公共分类列表)");
}
void content() {
System.out.println("Python学科视频");
}
}
class Cpp {
void header() {
System.out.println("首页 公开课 登录 注册...(公共头部)");
}
void footer() {
System.out.println("帮助中心,交流合作 ,站内地图....(公共底部)");
}
void left() {
System.out.println("java python c++...(公共分类列表)");
}
void content() {
System.out.println("C++学科视频");
}
}
void test01() {
System.out.println("java下载视频页面如下");
Java ja = new Java();
ja.header();
ja.footer();
ja.left();
ja.content();
System.out.println("--------------------");
System.out.println("python下载视频页面如下");
Python py = new Python();
py.header();
py.footer();
py.left();
py.content();
System.out.println("--------------------");
System.out.println("c++下载视频页面如下");
Cpp cpp = new Cpp();
cpp.header();
cpp.footer();
cpp.left();
cpp.content();
}
示例:使用继承
使用继承,我们可以定义一个基类BasePage
,其中包含了公共部分的代码,然后让Java
、Python
和Cpp
类继承这个基类。
class BasePage {
void header() {
System.out.println("首页 公开课 登录 注册...(公共头部)");
}
void footer() {
System.out.println("帮助中心,交流合作 ,站内地图....(公共底部)");
}
void left() {
System.out.println("java python c++...(公共分类列表)");
}
void content() {
System.out.println("Python学科视频");
}
}
class Java extends BasePage {
void content() {
System.out.println("Java学科视频");
}
}
class Python extends BasePage {
void content() {
System.out.println("Python学科视频");
}
}
class Cpp extends BasePage {
void content() {
System.out.println("C++学科视频");
}
}
void test01() {
System.out.println("java下载视频页面如下");
Java ja = new Java();
ja.header();
ja.footer();
ja.left();
ja.content();
System.out.println("--------------------");
System.out.println("python下载视频页面如下");
Python py = new Python();
py.header();
py.footer();
py.left();
py.content();
System.out.println("--------------------");
System.out.println("c++下载视频页面如下");
Cpp cpp = new Cpp();
cpp.header();
cpp.footer();
cpp.left();
cpp.content();
}
继承的好处
- 减少重复代码:使用继承,我们可以将公共代码放在基类中,避免在每个子类中重复编写相同的代码。
- 代码复用:子类可以复用父类的代码,这使得代码更加模块化和可维护。
- 便于扩展和维护:当需要修改公共部分的功能时,只需要修改基类,而不必修改每个子类。
在面向对象编程中,继承是一种强大的工具,它允许我们创建新的类,这些类继承了现有类的特性,并可以在此基础上添加新的特性或修改现有特性。