SCJP考点总结及SCJP考试要点分享[4]
文章作者 100test 发表时间 2007:03:14 17:37:44
来源 100Test.Com百考试题网
目标4 重载与覆写
为所有在自己或父类中的相关方法声明有效的返回值,
相同类中的方法
当在同一个类中有多个方法具有相同的名称时,这个方法就被重载了。只有参数的次序和类型是区分重载方法的依据,而返回值和参数的名称对区分重载方法没有贡献,所以,不能以返回值的不同来重载方法。
子类中的方法
可以在子类中重载父类的方法,只要新的重载方法具有不同的参数次序或类型。当你在子类中的方法具有于父类中的方法相同的signature,则称子类覆写了父类的方法。注意:子类覆写父类方法,它的访问修饰符可以不同,但子类要具有比父类更加严格的访问权限。
静态方法不能被覆写只能被HIDED。
基本类型为参数的重载
基本类型可以自动进行窄化转型(narrowing conversion),在没有相应数据类型的重载方法,它的数据类型向上晋升。
示例:
以下是引用片段: class Base{ public void another(int i){ System.out.println("Another int method" i). } //public int another(int i){} //!编译错误,重复定义 public void another(double d){ System.out.println("Another double method " d). } static void smethod(){ System.out.println("base smethod"). } } public class Abs extends Base{ public static void main(String argv[]){ Abs a = new Abs(). Base b=new Abs(). a.amethod(). a.smethod(). b.smethod(). a.another(4). a.another(4.9f). // 注意:它调用了覆写方法 b.another(4.9f). // 它不调用覆写方法 } |