public class test
{
    public static void main(String[] args) throws Exception
    {
int a=System.in.read();
System.out.println(a);
aa c=new aaa();
aa:c.bbc();//这里的:冒号什么意思?为什么不是调用父类的bbc方法?
    }
}class aa{
public void bb()
{
System.out.println("aa.bb");
}
public void bbc()
{
System.out.println("aa.bbc");
}
}class aaa extends aa{
public void bb()
{
System.out.println("aaa.bb");
}
public void bbc()
{
System.out.println("aaa.bbc");
}
}
我用aa c=new aaa();创建了一个指向子类的对象,问现在如何通过c对象调用父类的方法?
我用aa:c.bbc();不能调用父类的方法,输出依然是aaa.bb,如果不能调用那这里的:冒号什么意思?怎么才能调用父类的bbc方法?

解决方案 »

  1.   

    冒号什么意思? 学习!aa c=new aaa(); //bb() bbc()方法被子类覆盖,所以输出的是aaa.bb如果重载bb() bbc()的方法的话就可以调用,要么aa c=new aa(); c.bb();
      

  2.   

    因为aaa继承自aa,因此aa c=new aaa();属于向上转型由于aaa和aa中都有bbc()方法,所以用aa:c.bbc();表示调用aa中的bcc方法!
      

  3.   

    不好意思,我上面的说法不对!因为aaa继承自aa,因此aa c=new aaa();属于向上转型
    如果子类中的方法覆盖了父类的方法,那么调用的将会是子类的那个方法!
    就象你程序中那样,子类aaa中的bbc方法覆盖了父类的bbc方法,
    因此c.bbc()其实调用的子类的bbc(),所以输出结果是aaa.bbc如果你想调用父类的方法那你就直接用
    aa c = new aa();
    c.bbc();
      

  4.   

    冒号只是为了说明向上转型后c属于aa类的一个实例
      

  5.   

    aa c=new aaa();aa:c.bbc();//这里的:冒号什么意思?为什么不是调用父类的bbc方法?为什么不是调用父类的bbc方法?该问题楼上的回答比较清楚,不重复了。这里的:冒号什么意思?这里 aa: 是一个标签(aa是标签名),主要用于循环跳转(代替不收欢迎的gogo语句)。给个例程吧:public class testLable {
      
      public static void main(String[] args) {
        
        double sqrtDouble;
        double floorDouble;
        int floorInt;
        int n = 0;
        System.out.println("*********100以内的素数**************");
        outer:for (int i = 1; i < 100; i++) {
          sqrtDouble = Math.sqrt(i);
          floorDouble = Math.floor(sqrtDouble);
          floorInt = (int)floorDouble;
          inner1: {
            for (int j = 2; j < floorInt; j++) {
              if (i % j == 0) break inner1;//只跳出由本标签inner1标记的代码块,而不会跳出整个for循环。
            }
            System.out.print("  " + i);
            n++;      }
          inner2: {
            if (n != 10)break inner2;//只跳出由本标签inner2标记的代码块,而不会跳出整个for循环。
            System.out.println();
            n = 0;
          }
        }
      }
    }
      

  6.   

    这里 aa: 是一个标签(aa是标签名),主要用于循环跳转(代替不收欢迎的gogo语句)。更正:这里 aa: 是一个标签(aa是标签名),主要用于循环跳转(代替不受欢迎的goto语句)。