ホームページ >Java >&#&チュートリアル >Javaポリモーフィズムの簡単な例を詳しく解説

Javaポリモーフィズムの簡単な例を詳しく解説

coldplay.xixi
coldplay.xixiオリジナル
2020-09-04 09:15:446275ブラウズ

Java におけるポリモーフィズムの簡単な例: まず、Cat と Dog の 2 つのサブクラスを持つ Animal クラスがあり、次に Animal に Say メソッドがあります。Cat がこのメソッドを呼び出すと、出力は「Kitten」になります。 " "ニャーニャーニャー"、Dog がこのメソッドを呼び出すと、出力は "子犬の鳴き声、ワンワン" です。

Javaポリモーフィズムの簡単な例を詳しく解説

[関連する学習の推奨事項: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。