Javaで多態性を実現する方法は何ですか。
Javaにおける多態性の実装方法は主に以下の2つがある:
- オーバーライド
class Parent {
public void print() {
System.out.println("Parent");
}
}
class Child extends Parent {
@Override
public void print() {
System.out.println("Child");
}
}
public class Main {
public static void main(String[] args) {
Parent obj1 = new Parent();
Parent obj2 = new Child();
obj1.print(); // 输出 "Parent"
obj2.print(); // 输出 "Child"
}
}
- インターフェースの実装:あるクラスがインターフェースを実装した場合、インターフェースの型を使用してそのクラスのオブジェクトを参照し、ポリモーフィズムを実現することができます。インターフェースでメソッドを定義し、それらのメソッドを実装クラスで実装します。インターフェースの型を使用して、実装クラスのメソッドを呼び出すことができます。
interface Printable {
void print();
}
class Parent implements Printable {
@Override
public void print() {
System.out.println("Parent");
}
}
class Child implements Printable {
@Override
public void print() {
System.out.println("Child");
}
}
public class Main {
public static void main(String[] args) {
Printable obj1 = new Parent();
Printable obj2 = new Child();
obj1.print(); // 输出 "Parent"
obj2.print(); // 输出 "Child"
}
}
上記の2つの方法により、多様性が実現され、オブジェクトの実際の型に応じて適切なメソッドを呼び出すことができ、コードの柔軟性と拡張性が向上します。