ただ、メソッドの引数にインターフェース型を使えるという点が一つの便利さかも知れない。
--- GreetingMessages1.java ---
package testFolder.interface2;
public interface GreetingMessages1 {
void morning();
void afternoon();
void night();
}
--- English1.java ---
package testFolder.interface2;
public class English1 implements GreetingMessages1 {
public English1() {
}
@Override
public void morning() {
System.out.println("Good morning.");
}
@Override
public void afternoon() {
System.out.println("Good afternoon.");
}
@Override
public void night() {
System.out.println("Good night.");
}
}
--- Janapese1.java ---
package testFolder.interface2;
public class Japanese1 implements GreetingMessages1 {
public Japanese1() {
}
@Override
public void morning() {
System.out.println("Ohayo.");
}
@Override
public void afternoon() {
System.out.println("Konnichiwa.");
}
@Override
public void night() {
System.out.println("Kombanwa.");
}
}
--- InvokeGreet1.java ---
package testFolder.interface2;
public class InvokeGreet1 {
// interface GreetingMessages1 as parameter
public InvokeGreet1(){
}
greeter.afternoon();
}
public static void main(String[] args) {
English1 person_eng = new English1();
Japanese1 person_jpn = new Japanese1();
InvokeGreet1 invokegreet = new InvokeGreet1();
// Polymorphism? if文やswitch文が不要?
invokegreet.invoke(person_eng); // <-- ここに注目
invokegreet.invoke(person_jpn); // <-- ここに注目
}
}