ホームページ  >  記事  >  Java  >  Java がポリモーフィズムを実装するメカニズムは何ですか?

Java がポリモーフィズムを実装するメカニズムは何ですか?

Guanhui
Guanhuiオリジナル
2020-06-01 10:59:495211ブラウズ

Java がポリモーフィズムを実装するメカニズムは何ですか?

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 サイトの他の関連記事を参照してください。

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