💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 借记 --- ## 问题 下面的程序运行后,输出什么结果? ``` package com.devin.test; class SuperClass { public void add() { System.out.println(1 + 2 + 3); } } class SubClass extends SuperClass { public void add() { System.out.println(1 + 2 + 3 + 4 + 5); } public void div(){ System.out.println(10/10); } } public class Test { public static void main(String[] args) { SuperClass s = new SubClass(); s.add(); s.div(); } } ``` ## 结果 s.div();这句有编译错误。 ## 结论 * #### 使用父类类型声明的变量,却使用子类初始化,在编译期是到父类中去检查是否存在要调用的方法,而运行时却绑定到子类运行。 * #### 如果调用的方法父类中根本不存在,就会发生编译错误。 * #### 要用这种写法的前提是:子类复写了父类中的方法。 * #### 这种情况也是多态的一种体现。