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