关闭

黑马程序员--重载与重写

145人阅读 评论(0) 收藏 举报

重载(Overloading)

            方法重载是让类以相同的方式处理不同类型的手段,多个方法具有相同方法名,它们只是参数个数不同或者参数类型不同,调用方法时根据传递进来的参数个数和参数类型来判断调用了哪个方法,重载是类多态性的一种体现。

        方法的重载,必须具有相同的方法名,而参数类型和个数不相同,但是方法的返回值类型不能作为是否重载的依据。

 

       重载事例:

public class A{

         public void  a(){

              System.out.println("------a-----");

         }

       

        public void a(int c){

              System.out.println(c);

       }

 

       public int a(int c,int b){

              System.out.println(c);

                     return (b+c);

       }

 

}

 

而下面所示代码则是错伏的:

public class A{

         public void  a(){

              System.out.println("------a-----");

         }

       

        public void a(int c){

              System.out.println(c);

       }

 

    //只以返回值类型无法作为重载的依据

       public int a(int c){

              System.out.println(c);

                     return c;

       }

 

}

 

 

重写(Overriding)

            子类继承父类,子类继承了父类原有的方法,但是子类不想原封不动的继承父类原有的方法,子类想让方法具有自己想要的行为,这就需要重写,方法的重写又称之为方法的覆盖,子类的方法覆盖了父类的方法。

        若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。

 

      示例代码:

 class A{

      public void a(){

            System.out.println("我是A");

      }

}

//B中的a方法重写了A中的a方法

class B extends A{

      public void a(){

            System.out.println("我是B");

      }

}

 

重载与重写的区别:

       重载与重写都是多态的一种表现,重写是父类和子类之间多态性体现,而重载是一个类自身多态性的体现。

       子类重写父类的方法,子类的方法必须与父类的完全一样,而重载只是方法名相同,而参数个数和参数类型不同。

 

       

 

           

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1939次
    • 积分:134
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档