最新java虛方法調(diào)用 java虛方法的作用匯總

格式:DOC 上傳日期:2023-04-20 07:14:05
最新java虛方法調(diào)用 java虛方法的作用匯總
時間:2023-04-20 07:14:05     小編:zdfb

人的記憶力會隨著歲月的流逝而衰退,寫作可以彌補記憶的不足,將曾經(jīng)的人生經(jīng)歷和感悟記錄下來,也便于保存一份美好的回憶。相信許多人會覺得范文很難寫?下面我給大家整理了一些優(yōu)秀范文,希望能夠幫助到大家,我們一起來看一看吧。

java虛方法調(diào)用 java虛方法的作用篇一

我們已經(jīng)討論了方法的重載,也就是子類能夠重載父類的方法。以下是小編為大家搜索整理的java虛方法,歡迎大家閱讀!更多精彩內(nèi)容請及時關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

當(dāng)子類對象調(diào)用重載的方法時,調(diào)用的是子類的方法,而不是父類中被重載的方法。

要想調(diào)用父類中被重載的方法,則必須使用關(guān)鍵字super。

/* 文件名 : */

public class employee

{

private string name;

private string address;

private int number;

public employee(string name, string address, int number)

{

n("constructing an employee");

= name;

s = address;

= number;

}

public void mailcheck()

{

n("mailing a check to " +

+ " " + s);

}

public string tostring()

{

return name + " " + address + " " + number;

}

public string getname()

{

return name;

}

public string getaddress()

{

return address;

}

public void setaddress(string newaddress)

{

address = newaddress;

}

public int getnumber()

{

return number;

}

}

假設(shè)下面的.類繼承employee類:

/* 文件名 : */

public class salary extends employee

{

private double salary; //annual salary

public salary(string name, string address, int number, double

salary)

{

super(name, address, number);

setsalary(salary);

}

public void mailcheck()

{

n("within mailcheck of salary class ");

n("mailing check to " + getname()

+ " with salary " + salary);

}

public double getsalary()

{

return salary;

}

public void setsalary(double newsalary)

{

if(newsalary >= 0.0)

{

salary = newsalary;

}

}

public double computepay()

{

n("computing salary pay for " + getname());

return salary/52;

}

}

現(xiàn)在我們仔細(xì)閱讀下面的代碼,嘗試給出它的輸出結(jié)果:

/* 文件名 : */

public class virtualdemo

{

public static void main(string [] args)

{

salary s = new salary("mohd mohtashim", "ambehta, up", 3, 3600.00);

employee e = new salary("john adams", "boston, ma", 2, 2400.00);

n("call mailcheck using salary reference --");

eck();

n("\n call mailcheck using employee reference--");

eck();

}

}

以上實例編譯運行結(jié)果如下:

constructing an employee

constructing an employee

call mailcheck using salary reference --

within mailcheck of salary class

mailing check to mohd mohtashim with salary 3600.0

call mailcheck using employee reference--

within mailcheck of salary class

mailing check to john adams with salary 2400.0

例子中,我們實例化了兩個salary對象。一個使用salary引用s,另一個使用employee引用。

編譯時,編譯器檢查到mailcheck()方法在salary類中的聲明。

在調(diào)用eck()時,java虛擬機(jvm)調(diào)用salary類的mailcheck()方法。

因為e是employee的引用,所以調(diào)用e的mailcheck()方法則有完全不同的結(jié)果。

當(dāng)編譯器檢查eck()方法時,編譯器檢查到employee類中的mailcheck()方法。

在編譯的時候,編譯器使用employee類中的mailcheck()方法驗證該語句, 但是在運行的時候,java虛擬機(jvm)調(diào)用的是salary類中的mailcheck()方法。

該行為被稱為虛擬方法調(diào)用,該方法被稱為虛擬方法。

java中所有的方法都能以這種方式表現(xiàn),借此,重寫的方法能在運行時調(diào)用,不管編譯的時候源代碼中引用變量是什么數(shù)據(jù)類型。

s("content_relate");

【java虛方法】相關(guān)文章:

1.java程序運行方法

2.java方法重寫的方法分析

3.用java重載的方法

4.java調(diào)用的幾個方法

5.java泛型方法推薦

6.java動態(tài)方法調(diào)度實例

7.java使用方法集錦

8.java的常見排序方法

9.java parseint解釋加方法

【本文地址:http://mlvmservice.com/zuowen/2653969.html】

全文閱讀已結(jié)束,如果需要下載本文請點擊

下載此文檔