Java におけるポリモーフィズムの実装メカニズムとは何ですか
Java でポリモーフィズムを実装するメカニズムは、親クラスまたはインターフェイスからの参照に依存します。サブクラスに追加することで、オブジェクトの複数の形式の特性を実現します。その親クラスの参照は、実行時に特定のインスタンスを動的に指します。参照のメソッドが呼び出されるとき、そのメソッドは型で定義されたメソッドに従って実行されません。参照変数の、ただし参照変数の型で定義されたメソッドに従っている具体的なインスタンス メソッド。
簡単な例
person.java
import java.util.Scanner; public class Person { public int salary; public int allSalary(){ return 0; } public static void main(String[] args) { Person p = null; for (int n = 0; n < 3; n++) { @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); System.out.println("请输入一个1-3的数字:\n1 is Teacher\n2 is Scientis\n3 is Waiter"); int i = sc.nextInt(); //分别指向了不同的子类,输出的结果是不一样的 if (i == 1) { p = new Teacher(5000); System.out.println(p.allSalary()); } else if (i == 2) { p = new Scientist(5000); System.out.println(p.allSalary()); } else if (i == 3) { p = new Waiter(5000); System.out.println(p.allSalary()); } else { System.out.println("?\n请输入1-3"); } } } }
科学者 .java
public class Scientist extends Person{ public Scientist(int salary){ this.salary = salary; } public int allSalary(){ int aa = salary*12+36500; System.out.print("五五开一年的工资:"); return aa; } }
ウェイター.java
public class Waiter extends Person{ public Waiter(int salary){ this.salary = salary; } public int allSalary(){ int aa = salary*12; System.out.print("服务员一年的工资:"); return aa; } }
Teacher .java
public class Teacher extends Person{ public Teacher(int salary){ this.salary = salary; } public int allSalary(){ int aa = salary*12+3650; System.out.print("教师一年的工资:"); return aa; } }
推奨チュートリアル: "Java チュートリアル"
以上がJava がポリモーフィズムを実装するメカニズムは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。