黑马程序员技术交流社区

标题: 解析一下 [打印本页]

作者: 孙铭泽    时间: 2012-8-23 22:13
标题: 解析一下
  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(); } }






好像是错了。

作者: 吴通    时间: 2012-8-23 22:22
首先C继承B之后,x变量的权限不够大就不能再继承A中的x,
并且下面主函数要调用本类的函数不需要创建类对象的

作者: 黑马王建伟    时间: 2012-8-23 22:31
调用的x要指定为接口中的x,如果是继承类中的x,x要被static修饰,直接代码加注释:
  1. interface A{
  2.         int x = 0;
  3. }
  4. class B{
  5.         int x =1;
  6.         //static int x=1; //如果要指定继承类中的x,这里要用static修饰
  7. }
  8. public class Hello extends B implements A {
  9.         public void pX(){
  10.                 System.out.println(A.x); //要指定是接口A中的变量x,
  11.                 //System.out.println(A.x); //如果要指定继承类中的x,这里要用static修饰
  12.         }
  13.        
  14.         public static void main(String[] args){
  15.                 new Hello().pX();
  16.         }
  17. }

复制代码





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