public class Test
{
   public void method1(int i){};
}A.abstract void method1(float i);//不可以(为什么)如果将Test加上Abstract修饰后,那么A还算是重载吗?

解决方案 »

  1.   


    你得意思是这样改吗?
    public abstract  class TestOverload
    {
    public void method(int i)
    {
    System.out.println("test");
    }
    abstract void method(float i);
    }
    这让是可以的,没有错误,属于重载
      

  2.   

    如果你要在里面使用重载方法abstract void method1(float i);
    必须将Test类声明为abstract的,否则会出错
      

  3.   

    关于重载,就是要求的是方法的标签不同(其他的都应该相同),方法的标签包括的是参数类型,参数个数,参数顺序...
    例如:
    public A(int a){};
    public A(double a){};
    public A(int a,double b){};
    以上都算是重载.
    public static A(int a){};
    这个就不算是了 
    其他的必须要和要重载的方法一样,由于A中多了个抽象的特殊字符,所以不能算是.
      

  4.   


    public abstract  class TestOverload 

    public void method(int i) 

    System.out.println("test"); 

    abstract void method(float i); 

    如果类不是抽象的public class TestOverload 

    public void method(int i) 

    System.out.println("test"); 

    public void method(float i);