Heim  >  Artikel  >  Java  >  Detaillierte Erklärung einfacher Beispiele für Java-Polymorphismus

Detaillierte Erklärung einfacher Beispiele für Java-Polymorphismus

coldplay.xixi
coldplay.xixiOriginal
2020-09-04 09:15:446171Durchsuche

Ein einfaches Beispiel für Polymorphismus in Java: Zuerst gibt es eine Animal-Klasse, die zwei Unterklassen hat: Cat und Dog; dann gibt es eine say-Methode in Animal. Wenn Cat diese Methode aufruft, ist die Ausgabe „Kitten Meow Meow Meow“. Wenn Dog diese Methode aufruft, lautet die Ausgabe „Welpenrinde, woof, woof“. 🔜 Es ist ein wichtiges Merkmal der objektorientierten Programmierung (OOP). Wenn eine Sprache nur Klassen, aber keinen Polymorphismus unterstützt, kann das nur bedeuten, dass sie objektbasiert und nicht objektorientiert ist.

Polymorphismus tritt zwischen Objekten zweier Klassen mit einer Vererbungsbeziehung auf, sodass er nicht wie die Methodenüberladung (die in einer Klasse auftritt) während der Kompilierung (d. h. bestimmt) auftritt, sondern zur Laufzeit (Beenden).

Detaillierte Erklärung einfacher Beispiele für Java-PolymorphismusEine Referenz eines übergeordneten Klassentyps kann auf ein Objekt einer seiner Unterklassen verweisen

[Verschiedene] Objekte in der [gleichen] Klassendomäne weisen [unterschiedliche] Leistungen auf, wenn sie die [gleiche] Methode ausführen Das gibt es Ein klassisches polymorphes Beispiel: Es gibt eine Animal-Klasse, die zwei Unterklassen hat: Cat und Dog. Wenn Cat diese Methode aufruft, lautet die Ausgabe „Kitten Meow Meow“. Bei dieser Methode lautet die Ausgabe „Puppy Woof Woof Woof“, was die Implementierung des Java-Polymorphismus darstellt.

Hier schreiben wir noch eine: – Elternklasse: 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");
            }
        }
}
}

– Unterklasse: 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;
    }
}

Möchten Sie mehr über das Programmierlernen erfahren, Bitte beachten Sie die Rubrik

php-Training

!

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung einfacher Beispiele für Java-Polymorphismus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn