国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Java 多態(tài)性淺析

2012-08-16 06:29
科技視界 2012年21期
關(guān)鍵詞:構(gòu)造方法子類字符串

龍 軍

(??诮?jīng)濟(jì)學(xué)院 海南 ???570203)

在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,多態(tài)指的是一個(gè)名詞可以有多個(gè)語義,Java 的多態(tài)性是通過繼承中的覆蓋(動態(tài)多態(tài)性)和方法的重載(靜態(tài)多態(tài)性)實(shí)現(xiàn)的。

1 方法重載(Overloading)

Java 允許在一個(gè)類中有同名的多個(gè)方法存在,但要求參數(shù)列表不同,叫做方法重載。 這里的方法指具有相似功能的成員方法或構(gòu)造方法,不同的參數(shù)列表指的是方法的參數(shù)個(gè)數(shù)或參數(shù)的數(shù)據(jù)類型或?qū)?yīng)位置上的參數(shù)類型不同。 筆者通過下面的例子做一說明,首先做一個(gè)名叫ffcz 的類,在其中分別編寫幾個(gè)同名方法,再做一個(gè)名叫cz 的Application 類,在main 方法中生成ffcz 類的對象實(shí)例,依次調(diào)用成員方法并體現(xiàn)結(jié)果。

1.1 編寫ffcz 類

1.1.1 在類中聲明String 類型的成員變量mc。

1.1.2 編寫傳入一個(gè)字符串參數(shù)的方法,直接將傳入?yún)?shù)的值賦給成員變量。

1.1.3 編寫傳入字符串和整數(shù)兩個(gè)參數(shù)的方法,按第二個(gè)參數(shù)對第一個(gè)參數(shù)處理后賦給成員變量。

1.1.4 編寫傳入一個(gè)整數(shù)參數(shù)的方法,根據(jù)傳入?yún)?shù)的值給成員變量賦值。

1.1.5 編寫傳入兩個(gè)字符串參數(shù)的方法,將兩個(gè)參數(shù)連到一起賦給成員變量。

1.2 編寫cz 類

在main 方法中生成ffcz 類對象的實(shí)例,再調(diào)用各set_mc方法并體現(xiàn)成員變量mc。

1.3 運(yùn)行結(jié)果分析

結(jié)果表明Java 的編譯器會根據(jù)參數(shù)列表的不同來選擇具體調(diào)用的方法。

2 方法重寫(Overriding)

當(dāng)子類的成員變量和父類的成員變量同名時(shí),父類的成員變量被隱藏,如果是成員方法同名,父類的成員方法被覆蓋,也叫方法重寫。 重寫要求子類和父類有相同的方法名稱,且返回類型及參數(shù)列表也完全相同。 當(dāng)子類方法的訪問權(quán)限與父類的不同時(shí),要求子類方法的權(quán)限更大。 筆者通過構(gòu)建一個(gè)父類(ffcx)、一個(gè)子類(ffcx1)和一個(gè)Application 類(cx),在父類中編寫一個(gè)構(gòu)造方法和設(shè)置字符串的的方法,采用子類中無方法和重寫父類寫方法兩種形式,在cx 中體現(xiàn)結(jié)果。

2.1 子類中無方法

2.1.1 編寫父類ffcx,在父類中聲明一字符串如mc,再編寫構(gòu)造方法給mc 賦初值,編寫set_mc 方法,將傳入的參數(shù)值賦給mc。

2.1.2 編寫空的子類ffcx1。

public class ffcx1 extends ffcx{ }

2.1.3 編寫Application 類cx,在main 方法中生成ffcx1 的對象實(shí)例,并體現(xiàn)出mc。

ffcx1 o1=new ffcx1();

System.out.println(o1.mc);

o1.set_mc("這是關(guān)于方法重寫的示例");

System.out.println(o1.mc);

2.1.4 運(yùn)行結(jié)果分析,運(yùn)行Application 類。

結(jié)果表明,雖然ffcx1 類體中沒有任何代碼,但父類中屬性和方法被子類繼承了。

2.2 子類中有方法

2.2.1 在子類中重寫構(gòu)造方法和set_mc 方法,賦給mc 不同的值。

2.2.2 運(yùn)行結(jié)果分析,運(yùn)行Application 類。

結(jié)果表明,當(dāng)在子類中加入與父類同名的方法后,程序調(diào)用的是子類的方法,即子類重寫了父類的方法。

3 重載與重寫的總結(jié)

重載和重寫的方法名稱都相同,但重載要求參數(shù)列表不同,重寫要求參數(shù)列表完全相同。 重載是在一個(gè)類中,對方法前面的修飾符沒有限制,重寫是子類對父類方法重寫,對修飾符的使用有限制。

總之,Java 的多態(tài)性就是“一個(gè)接口,多種方法”。 通過重載和重寫,提高了程序的可讀性和可擴(kuò)展性,使類的結(jié)構(gòu)更加清晰、簡潔。

[1]胡書敏.Java 第一步[M].清華大學(xué)出版社,ISBN:7-302-18607-6.

[2]雍俊海.Visual C++大學(xué)教程[M].清華大學(xué)出版社,ISBN:7-302-12671-3.

猜你喜歡
構(gòu)造方法子類字符串
DC-DC變換器分層級構(gòu)造方法
卷入Hohlov算子的某解析雙單葉函數(shù)子類的系數(shù)估計(jì)
關(guān)于對稱共軛點(diǎn)的倒星象函數(shù)某些子類的系數(shù)估計(jì)
《夢溪筆談》“甲子納音”構(gòu)造方法的數(shù)學(xué)分析
幾乎最佳屏蔽二進(jìn)序列偶構(gòu)造方法
一種新的基于對稱性的字符串相似性處理算法
依據(jù)字符串匹配的中文分詞模型研究
塊H矩陣新的子類
漢語新術(shù)語構(gòu)造方法的優(yōu)先選擇
一種針對Java中字符串的內(nèi)存管理方案