A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

方法重载(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出新的异常,只能是父类抛出的异常或其子集。更甚至可以不抛出异常。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马