Overloading And Overriding

来源:互联网 发布:淘宝搜索重定向 编辑:程序博客网 时间:2024/05/10 22:08

          最近在技术分享的时候,说到了一个小点,重写和重载,顿时感觉自己基础忒差,于是拿出这两个词,再一次温习一下,总是区分不开,加上一直在学习java,所以就用java来写一些小例子。

        重载(overloading)

         重载用一句话总结就是:充分体现多态,函数名相同,参数不同,返回值不做要求。

         例子:

         

package overloading;public class Dog {Dog(){}void Bark(){System.out.println("no barking");this.Bark("female",3.4);}void Bark(String m,double d){System.out.println("a barking dog");this.Bark(5,"china");}void Bark(int a,String n){System.out.println("a howling dog");}public static void main(String[] args) {Dog dog=new Dog();//多态dog.Bark();dog.Bark(2, "sdfsd");dog.Bark("sdf",2.2);}}
         重写(overriding)

        重写最重要的是子类继承父类,并可以在不改变父类方法名、参数、返回值的情况下进行重写,也叫方法覆盖。

        紧接上面的例子:          

package overloading;public class subDog extends Dog {@Overridevoid Bark() {<span style="color:#ff0000;">int i;System.out.println("重写父类方法");</span>}@Overridevoid Bark(String m, double d) {// overridingsuper.Bark(m, d);}@Overridevoid Bark(int a, String n) {// overridingsuper.Bark(a, n);} public static void main(String[]agrs)    { Dog dog=new subDog(); dog.Bark();//重写方法 dog.Bark(5, "sdfsd"); dog.Bark("df", 2.52);    }}
         其实当我写完这篇博客时,我觉得重载与重写其实在平时经常用,但是当真正让我去说他们的时候,我区分不清,根源就在没有做到思想上移,对于实践和理论并没有很好的结合,对于基础知识的重视程度并不是太高,所以在今后的学习中,对于这些基础知识点的学习还是必须滴~

0 0
原创粉丝点击