日期:2014-05-20  浏览次数:20821 次

java中下面各选项可以在A的子类中使用的是,在线等

java中
1.下面各选项可以在A的子类中使用的是()
  class A {
  protected int method (int a, int b) {
  return 0;
  }
  }

A.public int method (int a, int b) { return 0; }

B.private int method(int a, int b) { return 0; }

C.private int method(int a, long b) { return 0; }

D.public short method(int a, int b) { return 0; }

答案:AC

现问:1 为什么选项中ac可以,bd不可以

------解决方案--------------------
当覆盖一个方法时,方法的访问级别必须>=父类方法的访问级别,返回值要兼容父类的类型

a是方法覆盖,public比protected范围大
c是重载,没有任何问题


bd是覆盖,违背了方法覆盖的原则
------解决方案--------------------
A:答案,其实就是一个重载的过程
B:子类如果要重载父类的方法,那么访问权限必须大于等于父类的访问权限
C:相当于子类的一个新方法,可以使用
D:返回类型不一样
------解决方案--------------------
建议LZ看看 重载和重写