1. 程式人生 > 實用技巧 >對於呼叫介面中的方法的一點理解

對於呼叫介面中的方法的一點理解

我們眾所周知,介面是不能例項化的()它的裡面都是抽象方法。那麼我們應該怎樣來呼叫它裡面的方法呢?

請看如下程式碼:

首先定義一個介面:

public interface dog {
    void run();
}

然後我們用cat類來實現這個介面:

public class cat implements dog {
    @Override
    public void run() {
        System.out.println("我會跑步");
    }
}

然後寫一個測試方法:

public class demo1 {
    public static void
main(String[] args) { new dog() { @Override public void run() { System.out.println("我會跑步"); } }.run(); dog dog = new cat(); dog.run(); cat cat = new cat(); cat.run(); } }

測試方法的執行結果

由此可見,有三種方法可以呼叫接口裡面的方法(當然這些方法都是被重寫過的)

首先我認為只要一個類實現了這個介面並重寫了它的方法的話,這個類本身new出的物件(當然也是它自身的引用)那麼這個引用就可以呼叫被重寫的方法(相當於程式碼中的cat.run),另外的話我們一定學過集合我們怎麼使用List集合的呢?很顯然是通過List list =new Arraylist()使用了List介面,運用多型,但是我也不知道這是不是多型。通過這個例子我們可以看出:只要是實現了一個介面那麼我們就可以通過這個類來使用這個介面(相當於程式碼中的dog dog = new cat())只要new出它的物件就好。那麼第三種辦法就是匿名內部類了(匿名內部類是預設實現這個介面的)它的返回值也是介面型別,並且可以直接實現被重寫的介面方法。那麼匿名內部類在需要介面引用當做函式的引數的時候就派上用場了。