zoukankan      html  css  js  c++  java
  • Java中接口与实例化

    一.问题引入

            前两天学代理模式的时候想到的,接口可不可以new呢?

            接口是特殊的抽象类,接口的方法都默认为  public  abstract  的。。。 抽象的方法不能new的哦,不能被实例化,为什么new ActionListener(){} 可以?不多说了,直接看资料。

    二.若干资料

            Java不能同时继承多个类,但是可以继承多个接口;接口可以用来变相的继承多个类;为什么new ActionListener(){} 可以这样,接口可以被new吗?new ActionListener(){} 这种形式,是要在{}中重写接口中的方法。接口不能new ,不过可以生成一个匿名类,当然,匿名类不止实现接口这一种。省略了写一个具体类实现ActionListener接口的开销。

            接口不能直接new,但是它可以作为别的类的变量。如果有类实现了这个接口,则可以new! 举一个简单的例子:java.lang.List是一个接口,但是List<String> list=new ArrayList<String>();是没有任何错误的,因为ArrayList实现了List接口。接口编程是为了实现多继承,在java web中的spring框架下用到十分多。

    三.简单例子

    实现匿名类。最简单的线程类,可以这么写。
    
    Thread thread = new Thread(new Runnable() {
    
    @Override
    
    public void run() {
    
    // TODO Auto-generated method stub
    
    }
    
    });
    

    -------------------------------------------------------------------------------------------------------------------------

    class Test {
    
      int start=1;
    
      int end=100;
    
      public static void main(String[] args) {
    
         new Test().go();
    
      }
    
      
    
      void go() {
    
          Runnable a=new Runnable() {
    
             public void run() {
    
                for(int i=start;i<end;i++)
    
                  System.out.println(i);
    
             }
    
          };
    
          Thread t=new Thread(a);
    
          t.start(); 
    
      }
    
    }

     

  • 相关阅读:
    题型:系统可靠性
    计算机基础——网络存储
    传输层——TCP的流量控制服务
    传输层——UDP和TCP的对比
    配置——VLAN
    项目管理——PERT图
    从“派生类不能访问基类对象的protected成员”开始讨论各类成员的“可见性”
    cin.clear()和cin.sync
    华为编程大赛——路径查找
    华为编程大赛——求表达式的值
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3265269.html
Copyright © 2011-2022 走看看