JAVA 兩個類同時實現同一個介面的方法

TechSynapse發表於2024-08-12

在Java中,兩個類同時實現同一個介面是非常常見的。介面定義了一組方法,實現介面的類必須提供這些方法的具體實現。以下將展示如何實現這一要求,並提供具體的程式碼示例。

示例介面

首先,定義一個簡單的介面,比如一個表示動物的介面,它有一個方法makeSound

public interface Animal {  
    void makeSound();  
}

1. 方法一:兩個類分別實現介面

這是最直接的方法,每個類分別提供介面方法的實現。

1.1 類1:Dog

public class Dog implements Animal {  
    @Override  
    public void makeSound() {  
        System.out.println("Dog says: Bark");  
    }  
}

1.2 類2:Cat

public class Cat implements Animal {  
    @Override  
    public void makeSound() {  
        System.out.println("Cat says: Meow");  
    }  
}

1.3 測試程式碼

接下來,可以透過以下測試程式碼來演示介面的實現:

public class Main {  
    public static void main(String[] args) {  
        Animal myDog = new Dog();  
        Animal myCat = new Cat();  
          
        myDog.makeSound();  
        myCat.makeSound();  
    }  
}

2. 方法二:使用匿名內部類

如果不想建立具體的類,也可以使用匿名內部類來實現介面。

public class Main {  
    public static void main(String[] args) {  
        Animal myDog = new Animal() {  
            @Override  
            public void makeSound() {  
                System.out.println("Dog says: Bark");  
            }  
        };  
  
        Animal myCat = new Animal() {  
            @Override  
            public void makeSound() {  
                System.out.println("Cat says: Meow");  
            }  
        };  
  
        myDog.makeSound();  
        myCat.makeSound();  
    }  
}

3. 方法三:使用Lambda表示式(適用於函式式介面)

如果介面是一個函式式介面(即只有一個抽象方法的介面),可以使用Lambda表示式來實現它。

3.1 修改介面為函式式介面

為了使用Lambda表示式,介面可以保持不變,因為它已經是一個函式式介面(只有一個方法)。

3.2 使用Lambda表示式

public class Main {  
    public static void main(String[] args) {  
        Animal myDog = () -> System.out.println("Dog says: Bark");  
        Animal myCat = () -> System.out.println("Cat says: Meow");  
  
        myDog.makeSound();  
        myCat.makeSound();  
    }  
}

4.總結

透過上述三種方法,可以看到如何在Java中讓兩個類同時實現同一個介面。每種方法都有其適用場景:

(1)直接實現介面:適用於標準的物件導向程式設計。

(2)匿名內部類:適用於需要簡單實現介面但不想建立具體類的場景。

(3)Lambda表示式:適用於函式式介面,可以使程式碼更簡潔。

相關文章