为什么阿里巴巴建议开发者谨慎使用继承?

简介: 对于很多开发者来说,继承肯定都是不陌生的。但是,继承一定适合所有的场景吗?毫无忌讳的使用继承来做代码扩展真的好吗?

作者 | Hollis

从学习Java的第一天起,我们就知道Java是一种面向对象语言,而学习Java的第二天,我们就知道了面向对象的三大基本特性是:封装、继承、多态。

所以,对于很多开发者来说,继承肯定都是不陌生的。但是,继承一定适合所有的场景吗?毫无忌讳的使用继承来做代码扩展真的好吗?

为什么《阿里巴巴Java开发手册》中有一条规定:谨慎使用继承的方式进行扩展,优先使用组合的方式实现。

image.png

本文就来针对这些问题,简单分析一下。

面向对象的复用技术

每个人在刚刚学习继承的时候都会或多或少的有这样一个印象:继承可以帮助我实现类的复用。所以,很多开发人员在需要复用一些代码的时候会很自然的使用类的继承的方式,因为书上就是这么写的(老师就是这么教的)。但是,其实这样做是不对的。长期大量的使用继承会给代码带来很高的维护成本。

前面提到复用,这里就简单介绍一下面向对象的复用技术。

复用性是面向对象技术带来的很棒的潜在好处之一。如果运用的好的话可以帮助我们节省很多开发时间,提升开发效率。但是,如果被滥用那么就可能产生很多难以维护的代码。

作为一门面向对象开发的语言,代码复用是Java引人注意的功能之一。Java代码的复用有继承,组合以及代理三种具体的表现形式。

来源 | HollisChuang's Blog

相关文章
|
SQL 缓存 Oracle
为什么阿里巴巴禁止使用 count(列名)或 count(常量)来替代 count(*)
本文介绍了COUNT函数的用法,主要用于统计表行数。主要用法有COUNT(*)、COUNT(字段)和COUNT(1)。
12909 0
为什么阿里巴巴禁止使用 count(列名)或 count(常量)来替代 count(*)
|
2月前
|
人工智能 Java 应用服务中间件
AgentForge —— 让一句话变成一个生产可用的 Agent
AgentForge是阿里飞猪自研的“Agent工厂”平台,支持非技术同学5分钟零代码造出真Loop Agent,Node/Java工程师可直接部署生产级Agent团队。平台内置ANVIL框架、FECHO网关、fliggy-memory-sdk等核心技术,打通BUC鉴权、Aone容器、钉钉、SchedulerX等集团生态,实现“一句话描述→自动装备→云端运行→多Agent编排”全链路闭环。
768 1
|
6月前
|
人工智能 运维 API
阿里云OpenClaw汉化版零门槛部署指南:全中文界面+代码命令详解
在AI自动化办公全面普及的2026年,OpenClaw(前身为Clawdbot、Moltbot)凭借自然语言指令操控、多任务自动化执行、多平台适配的核心优势,成为个人与中小企业搭建专属AI助手的首选开源轻量级工具。它不仅能完成文档生成、文件解析、服务器运维等基础工作,更可通过阿里云一键部署实现7×24小时稳定运行。尤其适配的汉化版,以全中文界面彻底解决了原版英文操作门槛高的痛点,搭配零配置适配设计,让零基础用户也能快速上手,真正实现“零技术门槛解锁中文AI办公”。
5854 7
|
Web App开发
Signature length not correct: got 128 but was expecting 256和 got 256 but was expecting 128-自查方案
说明:     以下错误是支付宝公钥(alipay_public_key)与签名类型(sign_type)不匹配导致    Signature length not correct: got 128 but was expecting 256(签名长度不正确:得到128,但预期为256)    S...
12993 3
|
缓存 安全 Java
Java中线程池,你真的会用吗?
本文我们就来围绕这个问题来分析一下为什么JDK自身提供的构建线程池的方式并不建议使用?到底应该如何创建一个线程池呢?
10407 123
Java中线程池,你真的会用吗?
|
关系型数据库 MySQL 数据库
[图解MySQL]MySQL组提交(group commit)
[图解MySQL]MySQL组提交(group commit)
19048 0
|
Java Maven
修改配置maven镜像仓库位置,将maven镜像更换成阿里镜像
修改配置maven镜像仓库位置,将maven镜像更换成阿里镜像
14835 1
|
SQL Java 程序员
全新出击!《Java开发手册(嵩山版)》解读手册升级下载
《〈Java开发手册(嵩山版)〉灵魂15问》重磅来袭!“一线大厂如何用Java”解读再升级,千万阅读量博主深究Java规约背后的原理。规范学好Java还不来看一看?
75607 0
全新出击!《Java开发手册(嵩山版)》解读手册升级下载
|
运维 OLAP 测试技术
Doris是否可以替代influxdb
【4月更文挑战第20天】Doris是否可以替代influxdb
1295 0
|
Ubuntu 安全 虚拟化
vmware虚拟机运行ubuntu等卡慢的解决办法
vmware虚拟机运行ubuntu等卡慢的解决办法
6786 0

热门文章

最新文章