问题1:
public class a{public void fun1(int i){}   //不是static函数}public class b extends a{public static void fun1(int i){}  //是static函数}这样到底算 重载 还是 覆盖呢?谢谢指教!!~~~问题2:
public class a{   //不是static classpublic void fun1(int i){}   }public  static class b extends a{  //是static classpublic void fun1(int i){}  }
请问这样 是 重载 还是 覆盖 呢?ths。

解决方案 »

  1.   

    第一个,语法错误,你说是重载 还是 覆盖?
    第二个,似乎只有内类才可以使用static修饰符吧?如果是内类的话,应该是覆盖.
      

  2.   

    public class A{
    public void test(){}
    public void test(int i){}
    public void test(String a){}
    }这个叫重载.
      

  3.   

    static class
    你这样定义,可以运行通过、、、
    应该会报错吧
      

  4.   

    回复:
       
        第一个是书上的一个题目,怎么会是错误的呢。。
        
        我也 知道 判断 重载 与 覆盖 都要看 返回值 和 形参的。。    可是在前面加个 static 声明为 静态 函数 就不知道怎么 判断了。。
      

  5.   

    第1个问题: 都不是, 而是编译错误! 因为static无法覆盖也无法重载非static方法.第2个问题: 同上, 编译错误! static成员无法直接访问非static成员, 更不用说去继承它了.忠告楼主: 任何与static有关的东西, 一般都与继承无关. 所以你的这两个问题没有什么讨论的必要了. 结贴吧, 哈哈
      

  6.   

    同意 Dan1980(也该有一些作为了) 的讲法.
      

  7.   

    http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=577
    这是一篇关于重载和覆盖的文章,可以作为参考!
      

  8.   

    支持,都是错误的,不是变量还是方法,被定义为static就不能在改变了
      

  9.   


    重载(overload)、重写(overwrite)、覆盖(override)
    后两者的概念是相同的。前者是同一个类中,由于参数列表不同而方法名字相同。而后二者是子类中出现与父类完全一样的方法,从而覆盖了父类的方法。
    class overWriteSuper
    {
    public void sayHello()
    {
    System.out.println("I'm in super class.");
    }
    }class overWriteSub extends overWriteSuper {public void sayHello()
    {
    System.out.println("I'm in sub class.");
    }public void sayGoodBye()
    {
    System.out.println("Good-bye all.");
    }public void sayGoodBye(String str)
    {
    System.out.println("Good-bye "+str+".");
    }
    }public class overTest
    {
    public static void main(String[] args) {
    overWriteSuper mySuper = new overWriteSuper();
    mySuper.sayHello();
    overWriteSub mySub = new overWriteSub();
    mySub.sayHello();
    overWriteSuper mySubOverWrite = new overWriteSub();//即使类型是父类但是还是调用子类的方法
    mySubOverWrite.sayHello();
    }
    }显示结果:
    I'm in super class.
    I'm in sub class.
    I'm in sub class.
      

  10.   

    回复:
        Dan1980(也该有一些作为了)   说的好。。    看来我这 才真正 搞懂原理,,谢谢啦。。    看来书上  说的 很狡猾啊 ,他直接问 是重载 还是 覆盖。。没想到还没到边呢。呵呵。。
      

  11.   

    不知道还能不能回,但Dan1980关于第二个问题的回答是错误的.
      

  12.   

    一个static的内部class是可以覆盖超类中的方法的.不过static也只能用在内部类中.