重载与重写

重载:

1.什么时候使用?

       当所定义的方法功能相似时

2.构成方法重载的条件:

  1.  在同一个类中
  2. 方法名相同
  3. 参数列表不同(包括:形参数量不同,形参顺序不同,形参的类型不同)

3.注意:返回值类型不作为重载的区分标准(即重载与返回值类型无关),可能会有人不理解,下面详解一下:

例:

class A{
   
     public void a(int a,int b){
          
    }
    
     public int a(int a,int b){
          
     }

}

上面代码不是方法重载,而且写法是不对的,编译会报错,因为当你调用时,jvm不知该调用void类型的a方法还是类型的a方法。

例:

class A{
   
     public int a(int a,int b){
          return a+b;
    }
    
     public double a(int a,double b){
          return a+b;
     }

}

上面的代码是可以的,构成方法重载

重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

 3.重载的好处:

   便于阅读,优化程序设计。

方法重写:
注意:重写方法必须和被重写的方法具有相同的方法名,参数列表和返回值类型
          覆盖时,子类的方法权限一定要大于等于父类的方法权限
          静态只能覆盖静态
          父类的私有方法不可以被覆盖

this()与super():

      this()相当于调用本类的构造函数,super()相当于调用父类的构造函数,super与this只能存在一个。

原文地址:https://www.cnblogs.com/wwww2/p/11701338.html