黑马程序员技术交流社区

标题: 方法重载(overloading)、方法覆盖(overriding) [打印本页]

作者: an3077458    时间: 2015-9-19 21:39
标题: 方法重载(overloading)、方法覆盖(overriding)
方法重载(overloading)一定要求名字相同,参数不同,返回类型可以相同也可以不同

class A{
  void test(int i){
  }
}
class AA extends A{
  int test(int i, int j){
    return 5;
  }
}
注:方法覆盖(overriding)要求名字,参数,返回类型全部必须相同,访问控制符可以不同,但必须大过父类的。因为如果名字和参数都已经相同了则一定要求返回类型相同,否则认为这是一个新的方法了,名字就必须不同了。

class A{
  void test(int i){
  }
}
class AA extends A{
  public void test(int i){//若是换成private则编译不通过。
  }
}

注:关于覆盖方法抛出异常的问题。如A是父类,B是继承A的子类。B中的方法meth()去覆盖父类A的此方法时,B中不能throws出新的异常,只能是父类抛出的异常或其子集。更甚至可以不抛出异常。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2