黑马程序员技术交流社区

标题: java中接口的使用 [打印本页]

作者: adamjy    时间: 2014-4-22 10:29
标题: java中接口的使用
本帖最后由 adamjy 于 2014-4-22 12:35 编辑

为什么接口不需要实现类直接就能使用,代码如下

  1. /**
  2. * 定义接口
  3. * @author AdamJY
  4. *
  5. */
  6. interface MyInterface {
  7.         void myFunc();
  8. }

  9. public class Demo1 {
  10.         static MyInterface interface1 = new MyInterface() {
  11.                
  12.                 @Override
  13.                 public void myFunc() {
  14.                         System.out.println("hi,i'm adam");
  15.                         
  16.                 }
  17.         };
  18.         public static void main(String[] args) {
  19.                 interface1.myFunc();
  20.         }
  21. }
复制代码

作者: ⒈心只霸占沵    时间: 2014-4-22 10:39
  1. public class Demo1 {
  2.         static MyInterface interface1 = new MyInterface() {//等号右面的就是实现,这不是new接口,而是new了一个接口的实现类,这是匿名内部类
  3.                 @Override
  4.                 public void myFunc() {
  5.                         System.out.println("hi,i'm adam");
  6.                 }
  7.         };
  8.         public static void main(String[] args) {
  9.                 interface1.myFunc();
  10.         }
  11. }
复制代码

作者: heheka123    时间: 2014-4-22 10:47
本帖最后由 heheka123 于 2014-4-22 10:48 编辑
  1. /**
  2. * 定义接口
  3. * @author AdamJY
  4. *
  5. */
  6. interface MyInterface {
  7.         void myFunc();
  8. }

  9. public class Demo1 {
  10.         <font color="#ff0000">//这里相当于实例化的匿名内部类,匿名内部类中Override了myFunc方法,
  11.          //也就相当于你实现了接口new子类一个道理</font>
  12.         static MyInterface interface1 = new MyInterface() {
  13.                
  14.                 @Override
  15.                 public void myFunc() {
  16.                         System.out.println("hi,i'm adam");
  17.                         
  18.                 }
  19.         };
  20.         public static void main(String[] args) {
  21.                 interface1.myFunc();
  22.         }
  23. }
复制代码

作者: skill20    时间: 2014-4-22 11:26
  1. /**
  2. * 定义接口
  3. * @author AdamJY
  4. *
  5. */
  6. interface MyInterface {
  7.         void myFunc();
  8. }

  9. public class Demo1 {
  10.         static MyInterface interface1 = new MyInterface() {
  11.                
  12.                 @Override
  13.                 public void myFunc() {
  14.                         System.out.println("hi,i'm adam");
  15.                         
  16.                 }
  17.         }; // 匿名内部类,注意这里是有分号的,相当与new 子类();把接口里的方法直接在子类中实例化。
  18.         public static void main(String[] args) {
  19.                 interface1.myFunc();
  20.         }
  21. }
复制代码





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