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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. interface Inter
  2.         public static final int NUM = 3;
  3.         public abstract void show();
  4.        
  5. }

  6. class Test implements Int
  7. {
  8.         public void show(){}
  9. }


  10. class InterfaceDemo
  11. {
  12.         public static void main(String[] args)
  13.         {
  14.                 Test t = new Test();
  15.                
  16.                 System.out.println(t.NUM);
  17.                 System.out.println(Test.NUM);
  18.                 System.out.println(Inter.NUM);
  19.                 //结构都是3
  20.         }
  21.        
  22. }
复制代码
这里面的,最后三句打印输出的语句,我看了没转过弯来= =||
为什么结构都是3?
【第一句】Test t = new Test();新建了一个t,然后t 调用了int NUM = 3?
【第二句】Test.NUM?
【第三句】Inter.NUM?
它是怎么调用(接口?)的?完了,我有点乱。
谁能帮我梳理一下,就后面这个打印输出。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

7 个回复

倒序浏览
我如果这么写你可能就好理解了一点了 ,
Inter inter = new Test();
接口中所写的代码呢就是一种声明,一种约束,需要子类来进行实现
所以说归根结低,你打出的就是:
public static final int NUM = 3;

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
Test类实现了Inter接口,那么Test当然也可以访问Inter里的静态常量NUM,类似于继承。
由于NUM是静态的,所以用不用实例直接用类名也可以访问。
回复 使用道具 举报
对呀!实现接口的类。相当于这个接口的子类,子类继承父类理所当然啦
回复 使用道具 举报
哥们给你看看我的:
一样的程序
  1. package first;
  2. /*接口对变量的使用*/
  3. interface Inter
  4. {
  5.         public static final int NUM=3;
  6.         public abstract void show();
  7.        
  8.         }
  9. class UseInter implements Inter
  10. {
  11.         public void show(){}
  12.         }
  13. class Test{
  14.         public static void main(String[] args) {
  15.                 UseInter a=new UseInter();
  16.                 System.out.println("实现接口的类的对象在使用变量:"+a.NUM);
  17.                 System.out.println("实现接口的类在使用变量:"+UseInter.NUM);
  18.                 System.out.println("接口在使用变量"+Inter.NUM);               
  19.         }
  20. }

  21. 结果:
  22. 实现接口的类的对象在使用变量:3
  23. 实现接口的类在使用变量:3
  24. 接口在使用变量3
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
对比一下你就看出来了,是结果都是3,后面的implements 是接口的名字,你两者的名字是不一样的,哥们仔细看视频,正确的程序见我给你发的代码。你对接口得到概念还是没有概念。好好看视频的。
回复 使用道具 举报
工善器 发表于 2014-1-6 16:08
对比一下你就看出来了,是结果都是3,后面的implements 是接口的名字,你两者的名字是不一样的,哥们仔细看 ...

仔细看完之后,大体上了然了!好!!!
回复 使用道具 举报
小泉真也 发表于 2014-1-6 16:23
仔细看完之后,大体上了然了!好!!!

不谢,哈哈,是29么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马