JAVA方法的重载与重写

解释一下这两个概念:


    方法重载(overloading method) 是在一个类里面,方法名字相同,而参数不同。返回类型呢?可以相同也可以不同。


    方法重写(overiding method) 子类不想原封不动地继续父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。假如还是搞混的话,就把“重写覆盖”,这个词多念几遍吧。知道是覆盖的话,就知道是子类覆盖父类的方法了。



实践: 重载的例子





   大家看到了上面的例子方法receive()有三个,名字相同参数不同。这样的话,在main()调用的时候,参数用起来就很方便了。重写的例子似乎不用举了,记不住的话,就和“覆盖”。一起念。 

    有时候,重载和重写的方式有些复杂,在jdk5里面。有一些方式能简化一些。我们来看看吧,jdk5的可变参数。 假如把相同参数类型的方法重载好几遍真的是很烦。就一个方法,pri(String args), pri(String arg0 ,String arg1), pri(String arg0,String arg1,String arg2), pri(String arg0,String arg1,String arg2,String arg3)。这样的话会写很多烦琐的代码。现在jdk5可以,用“…”来代替这些参数。



实践:









   jdk5的方法重写,比以前多了一个叫做协变返回的概念。在以往jdk的版本中,还有一个比较让人讨厌的地方。方法重写确实是比较不错的机制,假如想用父类的方法,写个super就可以了,假如不想用父类的方法就重写覆盖。但是重写覆盖的返回类型不能覆盖,父类的类型不够用怎么办,我们想在子类重写它的类型可以吗?现在可以了。



看下面的例子:









猜你喜欢

转载自www.cnblogs.com/dnn179/p/10845265.html
今日推荐