黑马程序员技术交流社区

标题: 接口问题 执行错误了! [打印本页]

作者: 我能驾驭住    时间: 2012-5-22 18:00
标题: 接口问题 执行错误了!
interface  A
{
   int x = 0;
}
class B
{
   int x =1;
}
class C extends B implements A
{
   public void pX()
{
      System.out.println(x);
   }
   public static void main(String[] args)
{
      new C().pX();
   }
}
接口中的成员都是public访问类型的。用implements去实现一个接口中的所有方法;
郁闷啊,谁能带一次流程,走一遍...:'(


作者: 蒋映辉    时间: 2012-5-22 18:16
本帖最后由 蒋映辉 于 2012-5-22 18:18 编辑

你同时继承了A,B  而且两个里边都有x   C里边的X到底代表哪个呢?
interface  A
{
   int x = 0;
}
class B
{
   int x1 =1;
}
class C extends B implements A
{
   public void pX()
{
      System.out.println(x1);
   }
   public static void main(String[] args)
{
      new C().pX();
   }
}

或者
interface  A
{
   int x = 0;
}
class B
{
   static int x =1;
}
public class Test extends B implements A
{
   public void pX()
{
      System.out.println(B.x);
      System.out.println(A.x);
   }
   public C void main(String[] args)
{
      new C().pX();
   }
}



作者: 林豪    时间: 2012-5-22 18:23
这个编译通过不了的,2个都有X,编译器不知道你要打出哪个X,
就好像你定义了一个方法
public void printlnX()
{
      int  x = 5;
      int  x = 6;
      sop(x);
}
就像这个一样,你还没到打印知道第二句 int x赋值时候就已经报错了
作者: 我能驾驭住    时间: 2012-5-22 18:30
蒋映辉 发表于 2012-5-22 18:16
你同时继承了A,B  而且两个里边都有x   C里边的X到底代表哪个呢?
interface  A
{

哦,我明白了,感恩




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2