黑马程序员技术交流社区

标题: 来看看这个接口问题 [打印本页]

作者: 杨建聪    时间: 2013-1-5 16:06
标题: 来看看这个接口问题
本帖最后由 yangcong 于 2013-1-5 17:07 编辑

interface Inter
{
public static final int NUM = 3;
public abstract void show();
}
interface InterA
{
public abstract void show();
}
class Demo
{
public void function(){}
}
class Test extends Demo implements Inter,InterA
{
public void show(){}
}

interface A
{
void methodA();
}
interface B //extends A
{
void methodB();
}
interface C extends B,A
{
void methodC();
}
class D implements C
{
public void methodA(){}
public void methodC(){}
public void methodB(){}
}

class InterfaceDemo
{
public static void main(String[] args)
{
  Test t = new Test();
  System.out.println(t.NUM);
  System.out.println(Test.NUM);
  System.out.println(Inter.NUM);
}
}


这个红色为什么也可以正常打印?怎么解释???

作者: 舒远    时间: 2013-1-5 16:26
接口里的静态常量呀。为什么不能调用?
作者: 杨建聪    时间: 2013-1-5 16:26
没人在了么?这么久了也没人帮忙解答下啊
作者: 杨建聪    时间: 2013-1-5 16:27
舒远 发表于 2013-1-5 16:26
接口里的静态常量呀。为什么不能调用?

接口可以这样调用么?接口不是一个正常类吧
作者: 舒远    时间: 2013-1-5 16:29
本来就是java语法支持的呀。

作者: 黑马吕世成    时间: 2013-1-6 11:19
接口也是类,所以肯定有类的特性,只是不能new对象而已。但是num你定义的是静态,自然就可以直接用类名调用。你觉得呢?
作者: 黄锦成    时间: 2013-1-6 12:37
没问题啊,接口.常量,这种调用方式没问题啊
作者: 胡勇敏    时间: 2013-1-6 13:07
接口也是类啊 类的静态常量 当让可以用类名来调用啊。
作者: 何竹冬    时间: 2013-1-6 13:30
本帖最后由 何竹冬 于 2013-1-6 13:31 编辑

你好
静态优先于对象存在,所以可以在类外用类名直接调用。

作者: Fateˉ似命守护    时间: 2013-1-7 15:54
学到了,很好




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