社区
Java
帖子详情
《Java与模式》一书中说静态方法无法有子类继承(p142)如何理解?
captiveRobotCN
2003-06-25 12:32:51
同上?
...全文
50
6
打赏
收藏
《Java与模式》一书中说静态方法无法有子类继承(p142)如何理解?
同上?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jeffyan77
2003-06-26
打赏
举报
回复
非常抱歉,这句话没什么意义,而且容易误解。已经有好几个读者指出这一点,我已经在网站上的勘误表中改正了。下面针对这个问题加以说明。
(1)一个Java类静态方法当然可以由子类继承。比如
class Base
{
public static void someMethod()
{
System.out.println("in static method");
}
}
class Derived extends Base
{}
class Client
{
public static void main(String[] args)
{
Derived.someMethod();
Derived d = new Derived();
d.someMethod();
}
}
运行Client会打印出两行“in static method”,这说明静态方法确实被子类所继承。
(2)书中原文想要说的是:“静态方法不能被子类override,因此不支持多态性。”一个Java方法不能被子类override,也不支持多态性,并不奇怪。构造方法就是如此。TIJ说构造方法是隐含的静态方法,我同意这个说法。
举一个例子:
class Base
{
public static void someMethod()
{
System.out.println("in static method of Base");
}
}
class Derived extends Base
{
public static void someMethod()
{
System.out.println("in static method of Derived");
}
}
class Client
{
public static void main(String[] args)
{
Derived.someMethod();
Derived d = new Derived();
d.someMethod();
Base o = new Derived();
o.someMethod();
}
}
执行时会打印出
in static method of Derived
in static method of Derived
in static method of Base
显然,到底执行哪一个静态方法,是由变量的明显类型决定的,而不是由对象的真实类型决定。这不是多态性的。
asdmonster
2003-06-26
打赏
举报
回复
sign
jeffyan77
2003-06-26
打赏
举报
回复
换句话说,自类可以隐藏(hide)父类的静态方法,而不能覆盖(override)父类的静态方法。
nedea
2003-06-25
打赏
举报
回复
每一本书都有错误,应为电脑有不可预见性,何况jvm还不成熟。。。
<think in java>我已经发现了几处了
“静态方法无法有子类继承,“是垃圾话
fanhualei
2003-06-25
打赏
举报
回复
静态方法直接就能调用呀
zhipop
2003-06-25
打赏
举报
回复
静态方法直接是用类名.方法名使用,当然不能用子类来继承了
我觉得这些如果不说还好,说出来了简直是让人误解
如果是静态方法的话,就不需要让类实例化,也就是不需要句柄来直接调用方法
所以理解就是这样了
Java
线程安全本质:JMM三大特性与实战避坑指南
本文深入剖析
Java
线程安全的本质,聚焦
Java
内存模型(JMM)的原子性、可见性、有序性三大核心特性,结合字节码、happens-before规则和CPU缓存机制揭示并发问题根源。系统讲解synchronized、ReentrantLock、AtomicXXX、ConcurrentHashMap等工具的适用边界与典型陷阱,并拓展ThreadLocal、不可变对象及设计
模式
等高阶防御策略。最后提供基于thread dump、压测数据和线上事故的排查链路与避坑清单,强调共享状态认知对线程安全的关键影响。
CodeGraph:为AI编程助手构建代码知识图谱的MCP服务
CodeGraph 是面向 AI 编程助手构建的代码知识图谱服务,基于 tree-sitter 深度解析 AST,结构化存储符号与语义关系(如调用、导入、
继承
、路由),并通过 MCP Server 协议标准化对接 Claude Code、Cursor 等主流 Agent。其核心价值在于显著降低 AI
理解
代码的‘探索税’——实测使响应时间减半、Token 消耗下降72%,并支持项目初始化、精准查询、上下文构建及 CI/CD 集成。依赖 SQLite 存储、MCP 协议通信与增量索引机制。
C#实现合作博弈与夏普利值计算的工程实践
本文系统阐述使用C#工程化实现合作博弈模型的核心技术路径,重点解决特征函数v(S)建模、夏普利值精确与蒙特卡洛高效计算、核仁与最小核心求解等关键问题。涵盖位运算子集编码、高精度浮点校验、分层采样误差控制、线性规划封装(MSF)、gRPC服务集成及三重验证方法,面向企业级分配场景提供可测试、可监控、可降级的生产就绪方案。
DeepSeek-Coder实战指南:开源代码大模型本地部署与工程集成
本文深入解析DeepSeek-Coder在代码任务上的'小而准'机制,涵盖其代码优先的模型结构(定制化tokenizer、分层RoPE、双输出头)、训练数据的工程真实性约束,以及Apache 2.0许可证的实操边界。重点详述Ollama与vLLM两种本地部署方案的适用场景与性能差异,并给出VS Code深度集成、PR自动评审、低代码平台代码生成及Agent工作流等工程化落地实践,同时揭示'V4-Pro'营销本质、Copilot协议桥接限制及LoRA微调风险等关键避坑点。
Python VMD-LSTM光伏出力预测 分解出图对比LSTM课设
Python VMD-LSTM光伏出力预测 分解出图对比LSTM课设 店里已有 SSA-LSTM 空气质量和 PSO-LSTM 负荷。这个换成光伏出力 + 简易 VMD 分解再 LSTM,带 IMF 图和误差表。 功能: · 合成日间光伏出力 · 简易 VMD 分解出 IMF · numpy LSTM 对比原序列 · RMSE/MAPE/R2 · 分解图+预测曲线 · 打包时预跑 output/preview 压缩包含可运行源码、依赖与
说
明,按 README 安装后即可复现。
Java
51,407
社区成员
86,105
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章