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不可以

解决方案 »

  1.   

    当覆盖一个方法时,方法的访问级别必须>=父类方法的访问级别,返回值要兼容父类的类型a是方法覆盖,public比protected范围大
    c是重载,没有任何问题
    bd是覆盖,违背了方法覆盖的原则
      

  2.   

    A:答案,其实就是一个重载的过程
    B:子类如果要重载父类的方法,那么访问权限必须大于等于父类的访问权限
    C:相当于子类的一个新方法,可以使用
    D:返回类型不一样