黑马程序员技术交流社区

标题: 当遇到这种接口情况和静态,如何做? [打印本页]

作者: 饶正林    时间: 2013-4-1 20:16
标题: 当遇到这种接口情况和静态,如何做?
本帖最后由 饶正林 于 2013-4-3 19:34 编辑
  1. interface My_interface
  2. {
  3.         final static int value=1500;
  4.         void face();
  5.         void fast();//这个方法不用
  6. }
  7. abstract class Interface implements My_interface//因为接口方法没有全用所以必须为抽象类
  8. {
  9.                 public void face()//必须为public类型
  10.                 {
  11.                         System.out.println("这辆车很漂亮!");
  12.                 }
  13. }
  14. class My_interfaceTest
  15. {
  16.         public static void main(String[] args)
  17.         {
  18.                 Interface.face();//错误,无法从静态上下文中引用非静态 方法 face()
  19.                 System.out.println("这辆车一共要"+Interface.value);
  20.         }
  21. }
复制代码
如果我想在程序中使用face()方法应该如何做?

作者: 黑马19我最牛    时间: 2013-4-1 20:38
我不知道你还有什么要求,
不过先说下问题吧,IInterface.face()中face()这个方法是非静态的怎么可能用类名直接用那?而且你的类是抽象的,也不能直接建立对象.肯定要大改,看你怎么改!
作者: freeboyhrk    时间: 2013-4-1 20:41
可以定义一个子类,复写face方法,然后new对象调用
作者: 饶正林    时间: 2013-4-1 20:46
许兵兵 发表于 2013-4-1 20:38
我不知道你还有什么要求,
不过先说下问题吧,IInterface.face()中face()这个方法是非静态的怎么可能用类名直 ...

我只要想在main()中调用face函数就行,可是把face()变为非静态又是错误的!如何呢?不明白!

作者: 饶正林    时间: 2013-4-1 20:47
freeboyhrk 发表于 2013-4-1 20:41
可以定义一个子类,复写face方法,然后new对象调用

求代码!
作者: 黄小贝    时间: 2013-4-1 20:48


作者: 饶正林    时间: 2013-4-1 20:54
黄小贝 发表于 2013-4-1 20:48

这个好,能否解释一下,这个涉及到哪里的知识点,求教!
作者: 黑马19我最牛    时间: 2013-4-1 20:54
黄小贝 发表于 2013-4-1 20:48

好想法,这是个匿名实现类!
作者: 黄小贝    时间: 2013-4-1 21:00
饶正林 发表于 2013-4-1 20:54
这个好,能否解释一下,这个涉及到哪里的知识点,求教!

应该好理解吧,一个匿名类实现了接口,然后调用方法,等价于下面这种写法



作者: 黄玉昆    时间: 2013-4-3 11:59
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
作者: 饶正林    时间: 2013-4-3 18:49
黄玉昆 发表于 2013-4-3 11:59
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢  ...

请问如何改?!
作者: 黄玉昆    时间: 2013-4-3 19:16
饶正林 发表于 2013-4-3 18:49
请问如何改?!

请看这个帖子:http://bbs.itheima.com/thread-42978-1-1.html
作者: 饶正林    时间: 2013-4-3 19:35
黄玉昆 发表于 2013-4-3 19:16
请看这个帖子:http://bbs.itheima.com/thread-42978-1-1.html

:victory:   ok!




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