本範例展示如何定義多個接口、實現類別同時實現多個接口,以及在主程式中透過接口引用調用具體實現方法。
首先定義兩個接口 InterfaceA 與 InterfaceB,分別宣告輸出大寫字母與小寫字母的方法:
public interface InterfaceA {
void printCapitalLetter();
}
public interface InterfaceB {
void printLowercaseLetter();
}
Print 類別同時實現 InterfaceA 與 InterfaceB,並在方法中實現字母表的輸出邏輯(每 7 個字母換行,特定字母後加空格):
public class Print implements InterfaceA, InterfaceB {
@Override
public void printLowercaseLetter() {
for (char i = 'a'; i <= 'z'; i++) {
System.out.print(i + " ");
if (i == 'g' || i == 'n' || i == 't' || i == 'z') {
System.out.println();
}
if (i == 'q' || i == 'w') {
System.out.print(" ");
}
}
}
@Override
public void printCapitalLetter() {
for (char i = 'A'; i <= 'Z'; i++) {
System.out.print(i + " ");
if (i == 'G' || i == 'N' || i == 'T' || i == 'Z') {
System.out.println();
}
if (i == 'Q' || i == 'W') {
System.out.print(" ");
}
}
}
}
在 main 方法中,分別建立 Print 物件並賦值給 InterfaceA、InterfaceB 型別的變數,接著呼叫對應方法:
public class E {
public static void main(String[] args) {
// 透過 InterfaceB 呼叫小寫字母輸出
InterfaceB b = new Print();
b.printLowercaseLetter();
// 透過 InterfaceA 呼叫大寫字母輸出
InterfaceA a = new Print();
a.printCapitalLetter();
}
}
程式執行後將在控制台輸出格式化的大小寫字母表:
