面向对象核心:继承与多态的底层逻辑与面试实战指南
继承与多态这两块内容可以说是所有面向对象语言面试题的“基本盘”。我前前后后参与过不少技术面试不管是候选人面我还是我和别人讨论题库最后兜兜转转都会绕回到这两个概念上你连“什么是多态”都说不利索那后面的设计模式、框架源码、系统设计基本就没法聊了。这篇文章我打算换个角度来写。不讲标准定义不搬教科书里的原话而是从实际编码和面试应答两个维度把继承与多态拆开揉碎。看完之后你不仅能应付面试更重要的是在面对真实业务代码时能清楚知道哪些地方该用继承哪些地方该用组合什么时候该让接口出来说话以及为什么很多“资深程序员”也照样在这上面栽跟头。1. 继承的本质不只是代码复用1.1 继承真正解决的问题是什么很多刚接触面向对象的同学对继承的第一印象就是“子类可以拿父类的东西来用”省得重复写代码。这个理解没有错但只看到了表面。继承真正解决的是概念层次的建模问题它表达的是“is-a”关系子类是一种特殊的父类。一台笔记本电脑是计算机一个正方形是矩形一条狗是动物。这种关系在真实世界里天然存在代码只是把这种关系映射到类结构上而已。我见过不少项目里有人为了让两个类共享几个方法强行搞了一个继承体系出来结果业务一变化父类里堆满了互相矛盾的逻辑子类为了绕开父类的行为只能疯狂重写方法最后代码变成一团乱麻。这不是继承的错是滥用的错。继承带来的三大核心能力分别是代码复用公共的属性与方法放在父类子类自动获得统一操作通过父类引用操作一组子类对象这是多态的前提扩展开放新增一种子类不需要改动依赖父类的业务代码。尤其是第二点如果不理解“统一操作”你根本搞不懂为什么框架代码里到处都是MapString, Object、ListAnimal这类看似“丢掉子类信息”的写法。1.2 从类加载与内存分配看“继承的代价”很多文章讲继承只讲语法我在这里补充一个容易被忽略的底层视角。当一个子类对象被创建时比如Dog dog new Dog()JVM 内部的理解是这个Dog对象的内存布局中包含了父类完整的那一部分字段。所以你在子类里访问父类的private字段是做不到的但内存里确实有那份数据只是被访问控制挡住了。所以子类构造方法里必须调用父类构造器本质就是先把父类那块内存初始化干净。如果你没写super(...)编译器会自动在子类构造器的第一行补一个super()。这也就解释了为什么面试题里经常考“创建子类对象时父类构造器和子类构造器的执行顺序”——答案永远是父类在前子类在后。还有一点值得注意继承关系一旦确定JVM 加载Dog类的时候会顺着继承链把Animal类也加载完这就是所谓的类加载的传递性。这个特性在 Spring 这类框架里配合注解和代理时经常会被用在各种底层扩展点里但在日常开发里你只需要记住一条继承是有成本的滥用继承会让类的初始化链路变得很长排查问题时多一层间接性。1.3 继承设计的几条实战原则在我参与的代码评审里通常只认这几条关于继承的纪律子类必须真正满足“is-a”语义。如果类 A 要复用类 B 的方法但两者没有自然的概念归属关系优先把公共逻辑抽成工具类或者组合模式。父类尽量保持轻量。父类里不要放一堆子类根本用不上的方法这会让子类被迫实现或者重写那些压根不关心的东西。父类的构造函数里不要调用可被重写的方法。这是我最想说的一条虽然它是个老生常谈的规则但现实中还是有不少人踩坑。因为父类构造器先执行此时子类字段还没初始化如果你在父类构造器里调了一个被子类重写过的方法那么重写方法里访问到的子类字段全是默认值null、0 等。这种 bug 非常隐蔽运行时不报错但数据就是不对。举个例子class Parent { Parent() { print(); // 危险这里调用了可被重写的方法 } void print() { System.out.println(parent); } } class Child extends Parent { private String name child; Override void print() { System.out.println(name); } }执行new Child()打印出来的不是child而是null。因为父类构造器先跑当时Child的name字段还没赋值。这个坑面试和工作中都非常常见。2. 多态的底层逻辑与方法分派2.1 编译期与运行期的“双重身份”多态的实现不复杂但要理解透必须分清楚编译期和运行期两个阶段。在你写Animal animal new Dog();的时候编译期编译器只看Animal类型它认为这个变量只能调用Animal里声明过的方法。如果你要调用Dog独有的方法比如fetch()编译器直接报错因为animal的静态类型是Animal。但到了运行期JVM 看到变量实际指向的是Dog对象调用被重写的方法时会走动态绑定即根据对象的实际类型来决定执行哪个方法版本。这就是多态的核心机制。这里就产生了一个很有意思的思维模型静态类型决定了你“能调用什么”动态类型决定了“实际执行什么”。面试官最喜欢围绕这个模型出题比如问“为什么ListString list new ArrayList()里list.size()走的是ArrayList的实现而不是List接口”——答案就是动态绑定。2.2 虚方法表与查找过程讲动态绑定稍微深入一层就是虚方法表。JVM 在类加载完以后会为每个类生成一张方法表表里维护着方法入口地址的数组。子类继承父类时这张表会复制父类的内容然后覆盖重写方法的入口地址。当代码执行animal.makeSound()时JVM 做的其实是一次类似于“查表取地址再跳转”的动作。在只考虑单继承和少数方法时这种查找开销很小。所以网上那些说“不要用多态因为性能差”的说法在绝大多数业务系统里都站不住脚。真正该担心的不是查表开销而是因为多态带来的间接性导致代码流程不透明出了问题难排查。理解了虚方法表之后你就知道为什么以下这些操作很诡异在构造器里调用重写方法前面讲过会取到默认值重写方法里又调用了父类的一个私有方法——这没问题私有方法不参与重写两个子类分别重写了同一个父类方法但其中一个子类内部super.method()的调用时机不同导致行为差异。2.3 三大条件缺一不可很多教科书都讲多态需要“继承 重写 父类引用指向子类对象”这三点确实缺一不可。但有一个更精确的表述继承只是多态的一种形态接口实现同样产生多态效果。比如Comparable、Runnable一个类实现接口后通过接口引用调用实现类的方法这也是多态。所以严格来说条件可以泛化为“存在一组类型之间存在父类型与子类型关系、子类型对父类型的方法做了重新实现、通过父类型引用去调用”。面试题里有时故意混着问“接口里的 default 方法和抽象类里的方法哪个可以被多态地调用”答案很明显都可以。但难点在于接口里的static方法是不能被子类继承和重写的抽象类里的static方法一样不能。静态方法属于类不属于对象所以它天然不参与多态。2.4 为什么说“面向抽象编程”是工程直觉把多态用熟练之后你会慢慢形成一种条件反射依赖抽象不依赖实现。这不是口号而是很实际的工程选择。比如你写了一个OrderService里面需要把订单发送到消息队列。比较差的写法是直接在类里new KafkaProducer()然后调发送方法。这个类一旦写死后续想改成 RocketMQ 或者云厂商的消息服务就得改OrderService源码。更好的做法是抽象一个MessageSender接口OrderService只依赖这个接口具体用哪种实现由容器或者工厂决定。这段表述几乎就是多态的日常应用。面试官问“多态在实际项目里怎么用”你要是能举出这类例子比单纯背概念要好得多。我在实际面试里最怕听到的回答是“多态就是把父类的方法重写一下”然后就没了完全没体现出设计意识。3. 面试真题拆解这些题背后考的是什么3.1 “重载和重写有什么区别”这是一道高频送分题但很多人只能答出表面。重载Overload是同一类中方法名相同、参数列表不同返回类型可以不同重写Override是子类对父类方法的重新实现方法名、参数列表、返回类型必须兼容。更关键的差异在“什么时候决定执行为谁”重载是编译期决定的编译器根据参数列表和静态类型去匹配方法重写是运行期决定的JVM 根据对象的实际类型去动态绑定。举个例子下面这段代码class Parent { void func(String s) { System.out.println(parent string); } } class Child extends Parent { void func(Object o) { System.out.println(child object); } } public class Main { public static void main(String[] args) { Parent p new Child(); p.func(hello); } }运行结果是什么答案是parent string。虽然Child里有两个同名方法一个继承、一个重载但编译期根据p的静态类型Parent能找到的方法是父类的func(String)。运行期动态绑定查的是父类func(String)这个方法入口而Child没有重写它func(Object)并不是重写只是重载所以直接执行父类里的实现。这个坑很经典面试官看到候选人能够准确说出“编译器选方法签名运行期才动态绑定”基本就可以放心了。换句话说重载是静态多态重写是动态多态记住这一点答题思路就清晰了。3.2 “构造方法能不能被重写能不能被子类继承”答案非常明确构造方法不能被重写。构造方法不是实例方法它的名字必须和类名完全一致不存在“重新实现”的语义。子类构造方法中super(...)调用父类构造器只是先初始化父类部分而不是“重写”父类的构造方法。更容易让人混淆的是下面这个问题子类构造器中如果没有显式调用父类构造器会发生什么答案是编译器自动加上super()无参构造。这导致一个实际工作中常见的编译错误父类定义了带参构造方法且没有定义无参构造方法子类构造器又没有显式调用super(参数)编译就会报错。因为默认补的super()在父类里根本不存在。这块内容其实考察的是你对“对象生命周期”的理解比单纯背构造器规则更有深度。3.3 “静态方法能被重写吗”不能。你需要知道准确原因静态方法属于类类加载的时候就被绑定到对应的类上运行期不参与动态绑定。你可以在子类里定义一个和父类静态方法签名一模一样的方法但那是隐藏Hide而不是重写Override。隐藏行为的表现是调用的结果只取决于引用类型与对象实际类型无关。class Parent { static void hello() { System.out.println(parent static); } } class Child extends Parent { static void hello() { System.out.println(child static); } } Parent p new Child(); p.hello(); // 输出 parent static这就是为什么非常不建议用对象引用去调用静态方法IDE 基本都会给警告。正确姿势是通过类名调用避免这种“看起来像多态实则不是”的误导。3.4 “继承和组合到底怎么选”这道题在高级岗位面试里出现频率特别高。它的背后是让你展示工程判断力而不只是考语法。最高频的回答方向是继承适合表达稳定的、概念性的“is-a”关系并且这种关系短期内不会变化组合适合表达“has-a”关系或者你需要动态切换行为的时候组合能让类之间解耦更容易测试也更灵活继承一旦建立层次关系很难修改。我见过最生动的例子是关于“鸟”的问题企鹅是鸟吗如果用类继承来建模企鹅继承鸟类但企鹅不会飞。你会在鸟类里放一个fly()方法然后企鹅重写成一个抛异常的实现吗显然不合理。更好的方式是组合出一个FlyBehavior让需要飞的鸟类去组合它而不是所有鸟都继承飞。所以真正的面试回答逻辑是优先考虑组合继承只在满足强 is-a 关系且父类足够稳定的时候才用。这个顺序很重要它代表的是经验判断。3.5 “equals 和 hashCode 需要重写吗”严格来说它不是单纯的多态问题但因为它涉及重写Override所以经常会出现在同一张面试卷里。核心规则只有两条重写equals必须重写hashCode两个对象equals相等时它们的hashCode必须相等。反过来hashCode相同的两个对象equals不一定相等。原因也很好理解哈希集合比如HashSet、HashMap先根据hashCode定位到桶再用equals判断同一个桶里有没有相同对象。如果只重写equals而不重写hashCode同一个逻辑相等的对象可能被分到不同的桶里contains就永远查不到它集合里也会出现重复元素。很多同学一到手写代码就忘掉这条你需要养成肌肉记忆重写 equals 的时候自动把 hashCode 一起写了。4. 高频易错点与避坑指南4.1 向下转型与 instanceof多态向上转型是安全的子类对象转成父类引用JVM 永远不会报错。但向下转型父类引用转回子类不是安全的如果实际对象根本不是目标子类运行期会抛ClassCastException。正确的做法是用instanceof过滤if (animal instanceof Dog) { Dog dog (Dog) animal; dog.fetch(); }还有一个更隐蔽的细节如果父类是接口某个实现类的instanceof检查也是安全的但如果左边是nullinstanceof返回false而不是报空指针。这一点在网络热词相关的描述里很少提到但面试官偶尔会故意挖。4.2 重写时的访问权限与异常约束子类重写父类方法时不能比父类方法有更严格的访问权限否则编译报错。例如父类方法是public子类重写为protected是错的反过来父类是protected子类改成public是合法的因为访问放宽了。异常约束方面子类重写方法不能抛出比父类方法更宽泛的受检异常只能抛出相同或更具体的受检异常。但如果你把异常限制理解成“完全不抛就行”那也是对的。重写方法当然可以声明抛出更少的异常甚至可以完全不声明throws。我从面试角度额外提醒一句这些规则不是让你背下来应付选择题而是让你理解“重写必须保证父类型契约不被破坏”。父类承诺了能处理某些异常子类就不能违反这个承诺否则调用方按父类型写的try-catch就失效了。4.3 递归重写带来的诡异循环有一种在实际业务代码里很容易出现的问题子类重写的方法里调用了父类的其他方法而那个父类方法又内部回调了被重写的方法形成一种微妙的“递归循环”。比如class Base { void process() { stepA(); stepB(); } void stepA() { ... } void stepB() { ... } } class Sub extends Base { Override void process() { super.process(); } Override void stepA() { ... } }看起来很简单但如果你在stepA里面又触发了process()的调用那就会不受控地嵌套调用。这种因为重写导致的行为扭曲排查起来非常痛。比较实用的原则是重写方法时尽量保持完整的逻辑一致性不要在一个方案里既想复用父类的骨架又重写它内部的关键步骤除非你非常清楚整体调用链。4.4 接口多继承与“菱形问题”Java 的类是单继承接口可以多实现所以传统意义上的菱形继承问题很少出现。但接口的default方法出现后问题变得有意思了如果两个接口都定义了相同签名的default方法实现类必须显式覆写并指定调用谁的默认实现。这种题很容易伪装成“你日常会不会用到”实际上是要考察你对接口演进、多态兼容性的理解。现在大量框架都用了default方法来提供向后兼容比如给接口加一个可选方法而不破坏既有实现类。这个技巧本身很有价值但用多了会让代码的“真相来源”变分散调试时经常要追好几层接口所以有必要尽量把default方法控制在简单、稳定的逻辑内。5. 从面试到落地怎么把这些知识用起来5.1 面试考察点 vs 简历投射在面试里“继承与多态”很少被单独拿出来干巴巴地问而是会嵌套在框架源码、设计模式、系统设计的题目中。比如问 Spring 的BeanPostProcessor实质是接口 多态机制问策略模式、模板方法模式本质都是多态的工程化问“给一个消息推送系统需要支持短信、邮件、推送请问你怎么设计”其实就是让你设计出接口 实现类的结构。所以准备面试的时候建议不要把时间都花在背诵定义上而是准备一两个真实场景描述“你遇到了什么需求抽象出了一个什么接口用了多态的哪种思路避免了下游系统改动”。这比背概念要有说服力得多。5.2 实际项目里“最值得用多态”的三个场景结合这些年我看到的真实项目普遍适合用多态的场景有这么几类多渠道通知短信、邮件、站内信、企业微信每一种是一种策略实现订单状态机不同状态下的处理动作不同抽象出一个状态处理器接口每个状态一个实现类第三方服务适配把不同云厂商的对象存储、支付能力统一适配为相同接口方便替换。在这些场景里继承和多态的价值不是“炫技”而是让代码符合开闭原则新增一个渠道或状态时不需要修改已有核心逻辑只要新增一个实现类再注册进去即可。有一点我需要提醒你多态虽好但不要为了“可扩展”去过度抽象。业务结构还没稳定的时候就铺一大堆接口类反而让整个团队陷入“空转设计”的困境。我个人的经验是先有明确的两个以上真实实现再考虑抽象接口只有一个实现时普通类完全够用。5.3 回答面试题的“三段式话术”总结出来一套比较通用的应答结构你可以参考第一段直接给出定义和结论表明你对概念判断准确第二段补充底层机制或设计意图比如重写是动态绑定、隐藏与重写的差异、构造器调用顺序等第三段结合项目场景举例说明你确实在工程里用过而不仅仅是会背诵。举个回答示例“重写和重载的区别从决策时机上讲重载是编译期决定的根据参数列表和静态类型匹配方法重写是运行期决定的JVM 通过虚方法表做动态绑定。我之前做订单系统的时候把不同支付渠道抽象成统一接口上游只管调用支付方法下游根据运行时实际注入的渠道对象执行具体的支付逻辑这就是我在项目里对多态的典型落地。”这么一说面试官就会觉得你既有基础又有实战意识。6. 写在最后的几条经验继承与多态这两个知识点之所以被反复追问不是因为它们语法上有多难而是因为它们直接决定了代码的扩展性和可维护性。我在评审代码时最在意的也不是谁写得多花哨而是抽象边界划得是否合理。一段代码里全是if-else分支判断类型往往就是没有利用好多态的提示。如果你是在做准备面试或复习核心概念我建议的路线是先彻底弄清楚重写与重载、隐藏与重写、向上与向下转型这几组差异然后把构造器调用顺序、equals 和 hashCode、静态方法不参与多态这些细节背熟最后一定要回到真实代码里验证一遍。只有在 IDE 里亲手跑过那几个奇奇怪怪的输出你才算真正理解。还有一个学完很快能见效的小技巧每看一个设计模式第一反应是去问它靠什么实现多态。策略模式靠接口模板方法模式靠继承加重写观察者模式靠接口回调和动态绑定。这么追着问几轮之后继承与多态就不再是孤立的语法点而会成为你看待代码的一套坐标系。以后遇到任何框架源码你都能顺藤摸瓜地看到设计者到底在哪一层抽象、哪一层开放、哪一层封闭。

相关新闻

三维重建+无感定位:危化园区智能安防项目实战解析

三维重建+无感定位:危化园区智能安防项目实战解析

上个月刚完成了一个危化园区智能安防的科研成果转化项目,核心是用三维重建做数字底座,用无感定位做实时数据层,最后落到安防业务系统里。说实话,一开始我低估了这件事的复杂度,觉得技术点都跑通了,拼起来不…

2026/10/19 4:33:47 阅读更多 →
Linux高效检索实战:find、grep与rg工具的用法与选型

Linux高效检索实战:find、grep与rg工具的用法与选型

在Linux下干活,逃不开两件事:找文件,看内容。刚接触Linux那会儿,我总觉得文件放哪随手记一下就行,结果半年下来,堆积的日志、脚本、配置文件多到连自己都找不着北。后来才明白,在Linux系统里做文…

2026/10/19 4:33:47 阅读更多 →
C#串口通信实战:工业级RS485/Modbus RTU调试底座

C#串口通信实战:工业级RS485/Modbus RTU调试底座

简介:这是一份面向C#初学者与嵌入式通信开发者的串口编程实践项目,聚焦Windows平台下基于.NET Framework的串口设备调试与数据交互场景。资源提供完整可运行的「C#串口通讯助手」源码工程,涵盖自动枚举COM端口、实时状态显示、十六进制/ASCII…

2026/10/19 4:33:47 阅读更多 →

最新新闻

用UiPath自动化禁用Windows更新:批量节点策略治理与踩坑实录

用UiPath自动化禁用Windows更新:批量节点策略治理与踩坑实录

某天上午,我打开一批测试节点的事件日志,看到整齐划一的"Windows更新已完成安装,正在重启"。前一天夜里,跑批任务刚跑到一半,机器就重启了,监控平台黄了一串。值班的同事说,这已经不是…

2026/10/19 5:16:15 阅读更多 →
云服务器上部署OpenClaw,打造7×24小时在线的AI私人助手

云服务器上部署OpenClaw,打造7×24小时在线的AI私人助手

你有没有过这种时刻:临时想查个东西,手机解锁、打开App、输入问题、等回复,一整套流程下来,自己都忘了刚才想干什么。我折腾OpenClaw之前,总觉得大模型挺好用,但每次都缺一个随手能喊出来的入口。后来我换了…

2026/10/19 5:16:15 阅读更多 →
人形机器人专利池的精准补位战略:从技术地图到产业卡位

人形机器人专利池的精准补位战略:从技术地图到产业卡位

这些年做机器人硬件和智能算法的朋友应该都有一个共同感受:人形机器人这个词,已经从实验室里的概念验证,变成了产业界真金白银下注的确定性赛道。上个月我在某产业论坛待了三天,被问到最多的问题不是“能不能造出来”,…

2026/10/19 5:16:15 阅读更多 →
AirVLA技术拆解:端到端VLA模型如何实现桌面机械臂空中抓取与导航

AirVLA技术拆解:端到端VLA模型如何实现桌面机械臂空中抓取与导航

最近具身智能圈子里放出了一个叫 AirVLA 的方案,名字听起来很“大模型”,但核心一句话就能讲明白:它让桌面机械臂的视觉-语言-行动(VLA)模型从“只会平面抓取”升级到了“能在三维空间里完成空中…

2026/10/19 5:16:15 阅读更多 →
线程回收、分离属性、互斥与同步:NEXT 2项目实战拆解

线程回收、分离属性、互斥与同步:NEXT 2项目实战拆解

接手项目NEXT 2的时候,我第一反应是:这不就是一个普通的并发任务模块吗?无非开几个线程、跑几个队列。真正动手才发现,线程回收、分离属性、互斥、同步这四件事,任何一个环节没想清楚,程序就会以各种奇怪的…

2026/10/19 5:16:15 阅读更多 →
gPINN求解多陡峭界面Allen-Cahn方程:Python实现与训练策略

gPINN求解多陡峭界面Allen-Cahn方程:Python实现与训练策略

我先从一个很现实的场景起头:对一个 ε 已经小到 0.02 的一维 Allen-Cahn 方程,初始条件里同时存在两个甚至四个陡峭过渡层,标准 PINN 训练到中途,损失曲线虽然还在降,但画出来的解已经不像界面,更像一段被…

2026/10/19 5:15:15 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →