重载(overload)与重写(override)



这个问题考察了哪些概念呢?

Java语言中,一个类只能从一个类中继承出来(也就是,单继承结构),如果没有显式的标明所继承自的类,那么自动继承自Object对象。

大多数的非final对象类方法都会被子类重写(overridden).

重载方法在编译时起作用(例如,静态绑定),重写方法在运行时起作用(例如,动态绑定)。

静态绑定意味着JVM在编译时决定调用的类或方法。

而动态绑定时,JVM是在运行时决定调用的类或方法。动态绑定设计是多态的基础。

子类中重写父类的对应方法必须遵循下面的规则:

参数         : 不可变(译者注:包括参数类型和个数)。
返回类型     :不可变,除了协变返回类型或其子类型(covariant (subtype) returns)。
异常         : 子类中可以抛出更少的异常,但绝对不能抛出父类中没有定义的已检查异常。
访问权限     : 比父类中对应方法更宽松。
调用         : 运行时(也就是动态绑定),根据对象类型来决定调用的具体方法。

猜你喜欢

转载自yoon.iteye.com/blog/2229327
今日推荐