覆盖时有一个要求:子类方法的访问权限比父类方法的访问权限更高。。
如果父类是public void,子类是public static void 访问权限谁高呢?
反过来,子类是public void,父类是public static void又怎么样了呢?

解决方案 »

  1.   

    ????
    一个是instance method,一个是class method
    请问楼主有什么好比的?
    class A{
     
      public stataic void main(String[] args) {
         //new B().f();这个是不行的,而且static方法也不建议用对象去调用
      }   public static void f() {
      }
    }class B extends B {
    }
      

  2.   

    笔误:应该是class B entends A{}
      

  3.   

    权限标识符:
    private 
    default
    protected
    publicfinal static 等只是声明该方法或变量的状态.楼主别搞混了
      

  4.   

    是这样的,大家说的我不大明白
    是有这么一道题目,大家给解答下://阅读下面两个类,在类A中哪个方法被重载,那个被覆盖?
    public class A
    {
         public void methodOne(int i)
         {   
         }
         public void methodTwo(int i)
         {   
         }
         public static void methodThree(int i)
         {   
         }
         public static void methodFour(int i)
         {   
         }
    }
    public class B extends A
    {
         public static void methodOne(int i)
         {   
         }
         public void methodTwo(int i)
         {   
         }
         public void methodThree(int i)
         {   
         }
         public static void methodFour(int i)
         {   
         }
    }
    我就是不知道到底在这里扮演了什么角色
      

  5.   

    static在这里到底扮演什么角色
      

  6.   

    overload:重载,同一个类中,方法名相同,但方法中的参数个数,参数类型,参数排列顺序不同
    overload:覆盖,应用范围为在有继承关系的子父类之间,子类中的方法声明与父类中的方法声明完全一样//阅读下面两个类,在类A中哪个方法被重载,那个被覆盖?
    public class A
    {
         public void methodOne(int i)
         {   
         }
         public void methodTwo(int i)
         {   
         }
         public static void methodThree(int i)
         {   
         }
         public static void methodFour(int i)
         {   
         }
    }
    public class B extends A
    {
         public static void methodOne(int i)//编译错误,提示:This static method cannot hide the instance method from A
         {   
         }
         public void methodTwo(int i)//override
         {   
         }
         public void methodThree(int i)//编译错误,提示:This instance method cannot override the static method from A
         {   
         }
         public static void methodFour(int i)//关于静态方法,按Sun官方的说法,没有覆盖这一说,只是父类中的方法被子类的隐藏了
         {   
         }
    }
      

  7.   


    标识该方法或变量为类变量,与实际变量区分开
    建议楼主复习下Java的基础知识