我也不明白你的b.method1('*',2,3);这句怎么能直接用在类里
java1 b=new java2();
b.method1('*',2,3);
你把这两句放到一个函数里再试试,比如main方法里就能直接用了

解决方案 »

  1.   

    谢谢楼上的
    如果我在类java2再加上一个method2,为什么又不行了
    class java1{

       public static void method1(char a,int n,int r){
    for(int i=0;i<n;i++){

    for(int k=0;k<r;k++)
    {
    System.out.print(a);
        }

    System.out.print("\n");
    }
    }
    }
     class java2 extends java1{
     static void method2(){
     System.out.print("hao");
    }
     
     public static void main(String args[]){
     java1 b=new java2();
      b.method1('*',2,3);
      b.method2();
     
      }
    上面的例子不正是体现多态了吗?为什么又有错? 
    }
      

  2.   

    错就错再你的b是向上转型成了java1,你的java2里的方法自然会被忽略
    改成java2 b=new java2();你再试试
    顺便一句,你是国米球迷,就是我的朋友,以后有什么问题,大家一起探讨吧
      

  3.   

    是不是应该b.method2()是不能够调用了
      

  4.   

    是这样的
    java1 b=new java2();
    b的形式类型是java1,实际类型是java2
    当b.method2()调用的时候,会对形式类型java1进行类型检查,而java1并没有method2方法,这就是错误的原因了