• java接口实例化对象


    1.今天在博客上突然看见一段代码,直接new一个Runnable接口,具体代码如下。

       

    Runnbale  runnable  =  new  Runnable(){
    
          public  void  run(){
                
                  //具体实现
          }
    
    }

    我第一次意识到接口也可以实例化。然后上网搜了一下答案,在此总结一下。

    简单示例:
    
     public interface ISay {
     
        void sayHello();
    
     }
    
    /*****************/
    
     public class Program {
         public static void main(String[] args) {
             ISay say = new ISay() {          
                 public void sayHello() {
                     System.out.println("Hello java!");
                 }
             };
         }
     }
    
    /*****反编译代码********/
    class Program$1
      implements ISay
    {
      public void sayHello()
      {
        System.out.println("Hello java!");
      }
    }

    初看上去,就好象在“不提供接口实现的情况下,直接new了一个接口实例”。

    观察bin目录下的class输出,会发现有一个类似Program。

    class文件,如果反编译观察一下,发现原来是编译器自动生成一个类program。

    如果有些场合,只需要临时需要创建一个接口的实现类,上面的"技巧"可以用来简化代码。

     

      

         

  • 相关阅读:
    不同编码字符所占大小
    期末考点总结--------多元统计分析
    博客网站设计
    java 事件举例
    zookerper总结
    Spring java配置
    Sense and Sensibility
    栈的出栈序列个数
    闭算子
    线性空间结论总结
  • 原文地址:https://www.cnblogs.com/wangguangjian/p/8762396.html
Copyright © 2020-2023  润新知