A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙铭泽 中级黑马   /  2012-8-23 22:13  /  1435 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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(); } }






好像是错了。

2 个回复

倒序浏览
首先C继承B之后,x变量的权限不够大就不能再继承A中的x,
并且下面主函数要调用本类的函数不需要创建类对象的
回复 使用道具 举报
调用的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. }

复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马