论坛首页 Java企业应用论坛

如何让定义一个接口类,然后接口的方法直接调用!

浏览 12484 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (2)
作者 正文
   发表时间:2011-11-17   最后修改:2011-11-17
public interface Test1{//接口类
    void getvb() throws Exception;
}

//...............过程

public class Test{
   public static void main(String[] args) throws Exception {
    Test1.getvb();//可以直接调用接口的方法,而不去实现,请问大家在中间过程怎么搞!!!!!!
   }
}
   发表时间:2011-11-19  
quanlei1507053 写道
public interface Test1{//接口类
    void getvb() throws Exception;
}

//...............过程

public class Test{
   public static void main(String[] args) throws Exception {
    Test1.getvb();//可以直接调用接口的方法,而不去实现,请问大家在中间过程怎么搞!!!!!!
   }
}

public class Demo implements Test1 {
@Override
public void getvb() throws Exception {
System.out.println("实现接口的方法");
}
}
public static void main(String[] args) throws Exception {
      Test1 test =  new Demo();
test.getvb();
}
是初学者吗?"可以直接调用接口的方法,而不去实现"  不实现接口的方法吗?很有可能报空指针错误。
指针指向内存的哪块区域不清楚,肯定会出错的。
0 请登录后投票
   发表时间:2011-11-21  
quanlei1507053 写道
public interface Test1{//接口类
    void getvb() throws Exception;
}

//...............过程

public class Test{
   public static void main(String[] args) throws Exception {
    Test1.getvb();//可以直接调用接口的方法,而不去实现,请问大家在中间过程怎么搞!!!!!!
   }
}


接口不能有静态方法,不能有本地方法。

接口的所有方法都是public的,可添加的关键字只能是public和abstract。

不去实现的接口方法,永远不能使用。

0 请登录后投票
   发表时间:2011-11-21  
代理!
可参考mybatis 中mapper的调用
0 请登录后投票
   发表时间:2011-11-21   最后修改:2011-11-21
quanlei1507053 写道
public interface Test1{//接口类
    void getvb() throws Exception;
}

//...............过程

public class Test{
   public static void main(String[] args) throws Exception {
    Test1.getvb();//可以直接调用接口的方法,而不去实现,请问大家在中间过程怎么搞!!!!!!
   }
}


这个直接使用是不可以的,非要这样使用的话可以试试匿名内部类,把interface定义成为匿名内部类,如下:
package com.cun.jdk;

import java.util.UUID;


/**
 * 匿名内部类
 */
interface Test1 {
  void getvb(String string);
}

public class InnerClassTest {
  public static void main(String[] args) {
    new Test1() {
      @Override
      public void getvb(String str) {
        System.out.println("inner class:" + str);
      }
    }.getvb(UUID.randomUUID().toString());
  }
}
0 请登录后投票
   发表时间:2011-11-21   最后修改:2011-11-21
问题是:
Test1.getvb();//可以直接调用接口的方法,而不去实现,请问大家在中间过程怎么搞!!!!!!

这行你希望它有什么效果呢?直接pass?还是抛异常?自动关机?自动格式化C盘?自动把mydocument/pictures目录的文件逐个发布到新浪微博?
0 请登录后投票
   发表时间:2011-11-22  
他想说的应该是spring的注入功能的实现吧
0 请登录后投票
   发表时间:2011-11-22   最后修改:2011-11-22
不管其中采取什么手段,只要表意上看出是直接调用,其实知道,接口必须实现,但是在其中做一些手段。。。。
0 请登录后投票
   发表时间:2011-11-22  
就如jdbc的
public interface Connection {

    /**
     * Creates a <code>Statement</code> object for sending
     * SQL statements to the database.
     * SQL statements without parameters are normally
     * executed using <code>Statement</code> objects. If the same SQL statement 
     * is executed many times, it may be more efficient to use a 
     * <code>PreparedStatement</code> object.
     * <P>
     * Result sets created using the returned <code>Statement</code>
     * object will by default be type <code>TYPE_FORWARD_ONLY</code>
     * and have a concurrency level of <code>CONCUR_READ_ONLY</code>.
     *
     * @return a new default <code>Statement</code> object 
     * @exception SQLException if a database access error occurs
     */
    Statement createStatement() throws SQLException;//可以直接调用该接口方法,我知道里面做了许多处理,其实不是直接调用,调用了许多架包!

0 请登录后投票
   发表时间:2011-11-22  
quanlei1507053 写道
就如jdbc的
public interface Connection {

    /**
     * Creates a <code>Statement</code> object for sending
     * SQL statements to the database.
     * SQL statements without parameters are normally
     * executed using <code>Statement</code> objects. If the same SQL statement 
     * is executed many times, it may be more efficient to use a 
     * <code>PreparedStatement</code> object.
     * <P>
     * Result sets created using the returned <code>Statement</code>
     * object will by default be type <code>TYPE_FORWARD_ONLY</code>
     * and have a concurrency level of <code>CONCUR_READ_ONLY</code>.
     *
     * @return a new default <code>Statement</code> object 
     * @exception SQLException if a database access error occurs
     */
    Statement createStatement() throws SQLException;//可以直接调用该接口方法,我知道里面做了许多处理,其实不是直接调用,调用了许多架包!


这个可不是直接调用该接口方法,而是DriverManger.getConnection()后使connection接口引用指向具体实现的connection实例,怎么是直接调用接口方法呢?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics