Java におけるポリモーフィズムの簡単な例: まず、Cat と Dog の 2 つのサブクラスを持つ Animal クラスがあり、次に Animal に Say メソッドがあります。Cat がこのメソッドを呼び出すと、出力は「Kitten」になります。 " "ニャーニャーニャー"、Dog がこのメソッドを呼び出すと、出力は "子犬の鳴き声、ワンワン" です。
[関連する学習の推奨事項: Java 基本チュートリアル]
ポリモーフィズム:
ポリモーフィズム
は、同時に複数の形式を持つ同じエンティティを指します。これはオブジェクト指向プログラミング (OOP) の重要な機能です。言語がクラスのみをサポートし、ポリモーフィズムをサポートしない場合、それはその言語がオブジェクト指向ではなくオブジェクトベースであることを意味するだけです。
ポリモーフィズムは、継承関係のある 2 つのクラスのオブジェクト間で発生するため、コンパイル中に発生する (つまり決定される) メソッドのオーバーロード (クラス内で発生する) とは異なり、発生します (決定されます)。実行時。
親クラス型の参照は、そのサブクラスのオブジェクトを指すことができます。
[同じ] クラス ドメイン内の [異なる] オブジェクトは、[ を実行すると [異なる] 結果になります。同じ] メソッドのパフォーマンス
ポリモーフィズムの比較的古典的な例があります:
Animal クラスがあり、これには Cat と Dog の 2 つのサブクラスがあります。 Animal のメソッドを使用すると、Cat がこのメソッドを呼び出すと、出力は「子猫のニャーニャー」となり、Dog がこのメソッドを呼び出すと、出力は「子犬のワンワン」になります。これは 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"); } } } }
—サブクラス: Scientist .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; } }
Waiter.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; } }
プログラミング学習について詳しく知りたい場合は、php training 列に注目してください。
以上がJavaポリモーフィズムの簡単な例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。