版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、函數(shù)的重載和覆寫函數(shù)Java中,函數(shù)被稱為方法;定義一個方法的一般形式:訪問權限 返回值類型 方法名稱(形參列表) 方法主體;我們更關注的是方法原型,對于方法原型的三個主要組成部分應當明確區(qū)分:返回值類型方法名稱形式參數(shù)在Java中定義方法/*Java中的方法示例代碼片段*/*定義求平方值的方法*/public int square(int x) return (x * x);返回值類型方法名稱形式參數(shù)實際參數(shù)int a=Square(20);實參專遞給形參案例public class Demo1 /求整數(shù)型的絕對值 public int abs(int x) return (x=0)?x:-
2、x); public static void main(String args) Demo1 a=new Demo1(); int b=a.abs(-10); System.out.println(b); 案例分析在上面的案例中,我們已經定義了求整數(shù)絕對值的方法;但有時候,我們可能還需要求浮點數(shù)的絕對值,請問:可以繼續(xù)使用這個方法嗎?事實上是行不通的,這個方法只能求出整數(shù)的絕對值,對于浮點數(shù),還需另外再定義求浮點數(shù)絕對值的方法。修改案例public class Demo1 /求整數(shù)型的絕對值 public int abs(int x) return (x=0)?x:-x); /求浮點型的絕對值
3、 public float abs(float x) return (x=0)?x:-x); public static void main(String args) Demo1 a=new Demo1(); int b=a.abs(-10); System.out.println(b); Demo1 c=new Demo1(); float d=c.abs(-10.1f); System.out.println(d); 如果還要求其它類型的絕對值,就需要定義更多的方法,這對于調用者來說,將會是非常麻煩的事情。方法重載用于定義一組方法,這些方法具有相同的名稱,并執(zhí)行類似的操作,但是卻使用不同的
4、參數(shù)列表;編譯器會根據(jù)調用時傳遞的實際參數(shù)自動判斷具體調用的是哪個重載方法,如:/*abs方法的重載*/int abs(int x) float abs(float x) double abs(double x) long abs(long x) 方法重載的三大原則方法名相同參數(shù)不同(可以有三方面的不同)數(shù)量不同類型不同順序不同同一作用域溫馨提示:方法重載跟方法的返回值類型沒有任何關系。也就是說,只有返回值不同的方法不能構成重載。/*錯誤的方法重載*/void fun(int x) ;int fun(int x) ;方法重載示例public class AbsoluteValue public
5、 int abs(int x) /重載方式1,求整數(shù)的絕對值 return (x = 0) ? x : -x); public float abs(float x) /重載方式2,求浮點數(shù)的絕對值 return (x = 0) ? x : -x); public double abs(double x) /重載方式3,求雙精度數(shù)的絕對值 return (x = 0) ? x : -x); public long abs(long x) /重載方式4,求長整型數(shù)的絕對值 return (x = 0) ? x : -x); public static void main(String args)
6、AbsoluteValue obj = new AbsoluteValue(); int a = -8, b; b = obj.abs(a); System.out.println(a + 的絕對值是 + b); float c = -3.14f, d; d = obj.abs(c); System.out.println(c + 的絕對值是 + d); 方法重載的作用域規(guī)則只有屬于同一作用域范圍內的方法才能構成重載。class First public void show() class Second public void show(int x) 不構成重載課堂練習1在Java中,對于成員
7、方法float add(float f1, float f2) 下面選項()是對該成員方法的重載。int add(int n1, int n2) float add(float f) float add(float f2, float f1) void add(float f1, float f2) void add(float f1, float f2, float x) 課堂練習2在Java中,下列方法()不能與int fun(int x) 構成方法重載。int fun(int x, int y) float fun(int x) int fun(float x) int fun(int
8、x, int y, int z) 關于方法重載的重要提示請勿將功能完全不一樣的方法進行重載!重載構造方法方法重載的一個重要應用就是重載構造方法;可以定義一組構造方法,使其構成重載關系,從而方便使用者能夠靈活機動地以各種不同的方式來實例化對象。Cat(String name)=name;Cat(String name,int age)/=name;this(name);this.age=age;Cat(String name,int age,String color)/=name;/this.age=age;this(name,age);th
9、is.color=color;總結方法重載可以方便方法的調用者,但方法重載應遵循三大原則:方法名相同參數(shù)列表不同屬于同一作用域可以適當?shù)刂剌d構造方法,使初始化對象的方式更加靈活;覆寫父類方法鳥和鴕鳥的例子鴕鳥是鳥類中的一個特殊品種,所以鴕鳥類是鳥類的一個子類;但是鳥類有飛翔的功能,但是鴕鳥呢?飛翔的行為顯然不適合于鴕鳥,此時怎么辦?子類拓展父類(子類是父類的一種特殊情況)主要是以父類為基礎,然后添加屬于自己的字段和方法。子類需要覆寫父類方法。當父類的某個方法不適合于子類本身的特征行為時就當覆寫父類中應當改變的方法。要用eclipse編輯class birdpublic void fly() S
10、ystem.out.println(我在飛);class Tuoniao extends bird/當父類的某些方法不適合子類的時候,要對父類的方法進行覆寫public void fly() System.out.println(太胖,飛不動);class Maque extends birdpublic class overwriteDemo public static void main(String args) Maque mq=new Maque(); mq.fly(); Tuoniao tn=new Tuoniao(); tn.fly();方法覆寫時應遵循的原則(一同兩小一大):(一
11、同):方法簽名必須相同,即方法名和參數(shù)列表相同(兩小):子類方法的返回值類型比父類方法的返回值類型更小或相等子類方法聲明拋出的異常應比父類方法申明拋出的異常更小或相等;(一大):子類方法的訪問權限應比父類方法更大或相等;判斷必殺技:子類方法前加上Override能編譯通過,表明是方法的覆寫。判斷(1)class birdpublic object fly() System.out.println(我在飛); return null;class Maque extends birdpublic String fly() System.out.println(我在飛); return null;子類方法的返回值類型比父類方法的返回值類型更小或相等判斷(2)class birdobject fly() System.out.println(我在飛); return null;class Maque extends birdpublic String fly() System.out.println(我在飛); return null;子類方法的訪問權限應比父類方法更大或相等;判斷必殺技:子類方法前加上Override能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑公司聯(lián)營財務制度
- 福耀企業(yè)財務制度
- 公司大型活動財務制度
- 中國財務制度
- 施工小企業(yè)財務制度
- 供暖公司財務制度
- 農民工監(jiān)測調查制度
- 關于川建安證書考試提醒制度
- 林地管道施工方案(3篇)
- 上門洗車施工方案(3篇)
- 2026中國國際航空招聘面試題及答案
- 房顫搶救流程護理
- 【8地RJ期末】安徽省蕪湖市2024-2025學年八年級上學期期末考試地理試卷+
- 學生成長規(guī)劃講座模板
- 碧桂園資金池管理制度
- GB/T 2879-2024液壓傳動液壓缸往復運動活塞和活塞桿單向密封圈溝槽的尺寸和公差
- 福建省廈門市2023-2024學年高二上學期期末考試英語試題(解析版)
- 高脂血癥性急性胰腺炎教學查房課件
- 廈門高容納米新材料科技有限公司高容量電池負極材料項目環(huán)境影響報告
- 當代藝術賞析課件
- GB/T 12789.1-1991核反應堆儀表準則第一部分:一般原則
評論
0/150
提交評論