ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# [第八章 复用](https://lingcoder.gitee.io/onjava8/#/book/08-Reuse?id=%e7%ac%ac%e5%85%ab%e7%ab%a0-%e5%a4%8d%e7%94%a8) > 代码复用是面向对象编程(OOP)最具魅力的原因之一。 对于像 C 语言等面向过程语言来说,“复用”通常指的就是“复制代码”。任何语言都可通过简单复制来达到代码复用的目的,但是这样做的效果并不好。Java 围绕“类”(Class)来解决问题。我们可以直接使用别人构建或调试过的代码,而非创建新类、重新开始。 如何在不污染源代码的前提下使用现存代码是需要技巧的。在本章里,你将学习到两种方式来达到这个目的: 1. 第一种方式直接了当。在新类中创建现有类的对象。这种方式叫做“组合”(Composition),通过这种方式复用代码的功能,而非其形式。 2. 第二种方式更为微妙。创建现有类类型的新类。照字面理解:采用现有类形式,又无需在编码时改动其代码,这种方式就叫做“继承”(Inheritance),编译器会做大部分的工作。**继承**是面向对象编程(OOP)的重要基础之一。更多功能相关将在[多态](https://lingcoder.gitee.io/onjava8/#/./09-Polymorphism)(Polymorphism)章节中介绍。 组合与继承的语法、行为上有许多相似的地方(这其实是有道理的,毕竟都是基于现有类型构建新的类型)。在本章中,你会学到这两种代码复用的方法。