首頁  >  文章  >  Java  >  java多態簡單例子詳解

java多態簡單例子詳解

coldplay.xixi
coldplay.xixi原創
2020-09-04 09:15:446219瀏覽

java多態簡單例子:首先有一個Animal類,它有Cat,和Dog兩個子類;然後在Animal中有個say方法,當Cat呼叫這個方法的時候輸出的是「小貓喵喵喵”,當Dog調用這個方法時,輸出的是“小狗汪汪汪”。

java多態簡單例子詳解

【相關學習推薦:#java基礎教學

#多態:

多態指同一個實體同時具有多種形式。它是物件導向程式設計(OOP)的一個重要特徵。如果語言只支援類別而不支援多態,只能說明它是基於物件的,而不是物件導向的。

多態是出現在具有繼承關係的兩個類別的物件之間,所以它不像方法重載(發生在一個類別中)在編譯期間發生(也就是確定),而是在運行期間發生(確定下來)。

一個父類別類型的參考可以指向他任何一個子類別的物件

[相同]類別域的[不同]物件執行[同一]方法的時候會有[不同]的表現

有一個比較經典的多型實例:

有一個Animal類,它有Cat,和Dog兩個子類,在Animal中有個say方法,當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培訓欄位!

#

以上是java多態簡單例子詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn