11.29

  1. 重载(overload):是指在同一个类中,多个方法拥有相同的方法名,但参数列表必须
    不同(参数个数或参数类型或参数次序不同)。
    方法重载与修饰符、返回类型无关,可以相同,可以不同。
class Animal{
  public int add(int a,int b){
       System.out.println("add(int a,int b)");
       return a + b;
   }
   public double add(double a,double b){
       System.out.println("add(double a,double b)");
       return a + b;
   } }
  1. 重写(override):是指子类继承父类,子类对父类的方法进行重新编写,但方法名、
    参数列表与返回类型必须一致,方法体不同。
   class Animal{
    public int getAge(){
        return age;
    } }
class Dog extends Animal{
    public int getAge(){
        System.out.println("子类中的getAge()....");
        return age;
    } }

注:(1)声明为static和final的方法不能被重写;
(2)构造方法不能被重写;
(3)不能被继承的方法也不能被重写;
(4)调用父类中的原方法时使用 super.方法名()。

  1. 区别:
    1. 返回类型不能作为区别重载与重写的标准。
    2. 访问修饰符的限制必须大于被重写方法的修饰符;而重载可以是任意的修饰符。
    3. 重写方法不能抛出新的检查型异常,也不能抛出比父类更宽泛的检查型异常;
    而重载可以抛出任意的异常。

你可能感兴趣的:(11.29)