这个问题考察了哪些概念呢?
Java语言中,一个类只能从一个类中继承出来(也就是,单继承结构),如果没有显式的标明所继承自的类,那么自动继承自Object对象。
大多数的非final对象类方法都会被子类重写(overridden).
重载方法在编译时起作用(例如,静态绑定),重写方法在运行时起作用(例如,动态绑定)。
静态绑定意味着JVM在编译时决定调用的类或方法。
而动态绑定时,JVM是在运行时决定调用的类或方法。动态绑定设计是多态的基础。
子类中重写父类的对应方法必须遵循下面的规则:
参数 : 不可变(译者注:包括参数类型和个数)。
返回类型 :不可变,除了协变返回类型或其子类型(covariant (subtype) returns)。
异常 : 子类中可以抛出更少的异常,但绝对不能抛出父类中没有定义的已检查异常。
访问权限 : 比父类中对应方法更宽松。
调用 : 运行时(也就是动态绑定),根据对象类型来决定调用的具体方法。
Java语言中,一个类只能从一个类中继承出来(也就是,单继承结构),如果没有显式的标明所继承自的类,那么自动继承自Object对象。
大多数的非final对象类方法都会被子类重写(overridden).
重载方法在编译时起作用(例如,静态绑定),重写方法在运行时起作用(例如,动态绑定)。
静态绑定意味着JVM在编译时决定调用的类或方法。
而动态绑定时,JVM是在运行时决定调用的类或方法。动态绑定设计是多态的基础。
子类中重写父类的对应方法必须遵循下面的规则:
参数 : 不可变(译者注:包括参数类型和个数)。
返回类型 :不可变,除了协变返回类型或其子类型(covariant (subtype) returns)。
异常 : 子类中可以抛出更少的异常,但绝对不能抛出父类中没有定义的已检查异常。
访问权限 : 比父类中对应方法更宽松。
调用 : 运行时(也就是动态绑定),根据对象类型来决定调用的具体方法。
本文深入探讨了Java语言中的单继承结构、自动继承自Object对象、非final对象类方法的重写、方法的静态绑定与动态绑定,以及子类重写父类方法的规则与实现。
508

被折叠的 条评论
为什么被折叠?



