日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java重载与重写的区别+重写父类equals方法的完美实现

發布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java重载与重写的区别+重写父类equals方法的完美实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【0】README

0.1) 本文章節【1】和【2】的內容轉自 http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html ; 旨在區分重載與重寫以及他們的相關概念;
0.2) 本文章節【3】的內容轉自 http://blog.csdn.net/pacosonswjtu/article/details/49495977 的章節【2】, 但源代碼為原創, 旨在給出 “編寫一個完美的 equals 方法的建議” 的源代碼實現;


【1】java重載

1.1) 方法重載是讓類以統一的方式處理不同類型數據的一種手段。多個同名函數同時存在,具有不同的參數個數/類型。重載Overloading是一個類中多態性的一種表現。
1.2) Java的方法重載,就是在類中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。調用方法時通過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法, 這就是多態性。
1.3) 重載的時候,方法名要一樣,但是參數類型和個數不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數的區分標準。


【2】java重寫

2.1) 父類與子類之間的多態性,對父類的函數進行重新定義。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類并不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋。
2.2)若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數表,則新方法將覆蓋原有的方法。如需父類中原有的方法,可使用super關鍵字,該關鍵字引用了當前類的父類。
2.3)子類函數的訪問修飾權限不能少于父類的;


【3】下面給出編寫一個完美的 equals 方法的建議:

3.1)顯式參數命名為 otherObject, 稍后需要將它轉換為另一個叫做 other的變量;
3.2)檢測this 與 otherObject 是否引用同一個對象:
if(this == otherObject) return true; 實際上, 這是一種經常采用的形式, 因為計算這個等式要比一個一個地比較類中的域所付出的代價小得多;
3.3)檢測otherObject 是否為 null, 如果為 null ,則返回 false, 這項檢測很有必要:
if(otherObject == null) return false;
3.4)比較this 與 otherObject 是否屬于同一個類: 如果equals 的語義在每個子類中有所改變,就是用 getClass 進行檢測:if(getClass() != otherObject.getClass()) return false;
3.5) 將 otherObject 轉換為 相應的類類型變量:
ClassName other = (ClassName)otherObject;
3.6)現在開始對所有需要比較的域進行比較了:
使用 == 比較基本類型域, 使用 equals比較對象域, 如果所有的域都匹配返回 true, 否則返回 false;
return field1 == other.field1 && Objects.equals(field2, other.field2) && ……;
如果在子類中重新定義 equals, 就要在其中包含 調用 super.equals(other);
Hint)對于數組類型的域, 可以使用靜態的Arrays.equals 方法檢測相應的 數組元素是否相等;
Alert)看個荔枝(下面是實現 equals 方法的一種常見的錯誤,請結合上述內容對方法重寫的定義來分析):

3.7)依據以上規則,重寫equals方法(為什么最后對 salary 和 name的比較方法不同,這是朋友些應該要注意的)

package com.corejava.test;import java.util.Objects;public class Student {private String name;private double salary;@Overridepublic boolean equals(Object otherObject){Student other;if(this == otherObject)//檢測this 與 otherObject 是否引用同一個對象return true;else if(otherObject == null)//檢測otherObject 是否為 null(很有必要 )return false;else if(getClass() != otherObject.getClass())//比較this 與 otherObject 是否屬于同一個類return false;other = (Student)otherObject;//將 otherObject 轉換為 相應的類類型變量return Objects.equals(name, other.name) //現在開始對所有需要比較的域進行比較&& salary == other.salary; } }

總結

以上是生活随笔為你收集整理的java重载与重写的区别+重写父类equals方法的完美实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产黄色www | 一区二区三区免费 | 超碰黄色 | 91干视频 | 成人在线视频免费 | www欧美色| 久色婷婷 | 亚洲国产精品久久久久婷蜜芽 | 国产成人无码久久久精品天美传媒 | 国产高潮网站 | 麻豆影视国产在线观看 | 国产第一精品视频 | 天天综合网天天综合 | 中文字幕人妻精品一区 | 久色综| 国产九色在线播放九色 | 国产精品无码久久久久久电影 | 久热中文字幕在线 | 91成人午夜 | 人妻少妇一区二区 | 自拍偷拍亚洲视频 | 新91视频在线观看 | 亚洲黄a | 精品人妻在线一区二区三区 | 中文字幕在线不卡视频 | 美女调教视频 | 精品国产久 | 巨乳免费观看 | 国产网址 | 国产又粗又长又大视频 | 不卡视频在线观看 | 剧情av在线 | 久久大香 | 99国产精品视频免费观看一公开 | 五月激情六月 | 中国a一片一级一片 | 欧美乱欲视频 | 成年人网站在线免费观看 | 欧美日韩久久 | 黄色福利片 | 国产精品99久久久久久久久 | 欧美另类日韩 | 欧美专区日韩专区 | 美女隐私无遮挡网站 | 亚色av| 成人av影院在线观看 | 色老二导航 | 欧美69久成人做爰视频 | 久久com| 国产免费999 | 黄色网址在线播放 | 国产亚洲精品久久久久久久 | 久久精品视频一区 | 裸体裸乳被免费看视频 | 能免费看18视频网站 | 欧美67194 | 天堂av中文在线 | 国产吞精囗交免费视频 | 96免费视频| 日韩最新中文字幕 | 国产精品久久久久久久久晋中 | 在线观看aaa | 色综综 | 亚洲色图2| 国产浮力第一页 | 中文字幕va| 91色站| 波多野结衣之潜藏淫欲 | 欧美亚洲精品天堂 | 久久精品无码av | 已满十八岁免费观看全集动漫 | 五月综合激情日本mⅴ | 熟睡人妻被讨厌的公侵犯 | 亚洲男人第一网站 | 97av视频 | 欧美午夜剧场 | 一本久草| 韩日精品视频 | 深夜福利国产 | 91丝袜国产在线播放 | 色图色小说 | 美女被草视频在线观看 | 欧美xx视频 | 一区二区三区高清在线观看 | 自拍天堂 | 久草新视频| julia在线播放88mav | 午夜精品久久久久久久四虎美女版 | 亚洲最新av | 国产精品久久久精品 | 天堂免费av| 久婷婷 | 九色麻豆| 欧美少妇xxx| 精品日韩一区二区三区 | 国产精品偷伦视频免费看 | 国产999在线 | 清冷学长被爆c躁到高潮失禁 | 福利片av |