国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java jdk5中方法的重載與重寫

2019-11-17 04:10:29
字體:
來源:轉載
供稿:網友

 java語言中的概念就是多,這回又有兩個概念,重載和重寫。這是兩個新概念,也是兩個令初學者容易混淆的概念。他們的概念截然不同,只不過都有個“重”字,就以為是很像的。下面解釋一下這兩個概念:
方法重載(overloading method) 是在一個類里面,方法名字相同,而參數不同。返回類型呢?可以相同也可以不同。
方法重寫(overiding method) 子類不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋。如果還是搞混的話,就把“重寫覆蓋”,這個詞多念幾遍吧。知道是覆蓋的話,就知道是子類覆蓋父類的方法了。
實踐: 重載的例子
public class MethodOverloading { void recieve(int i) { System.out.}
}

 

jdk5的方法重寫,比以前多了一個叫做協變返回的概念。在以往jdk的版本中,還有一個比較讓人討厭的地方。方法重寫確實是比較不錯的機制,如果想用父類的方法,寫個super就可以了,如果不想用父類的方法就重寫覆蓋。但是重寫覆蓋的返回類型不能覆蓋,父類的類型不夠用怎么辦,我們想在子類重寫它的類型可以嗎?現在可以了??聪旅娴睦樱?BR>class Point2D { //定義二維的點
protected int x, y;
public Point2D() {
this.x=0;
this.y=0;}
public Point2D(int x, int y) {
this.x = x;
this.y = y;
}}
//定義三維的點,繼承二維
class Point3D extends Point2D {
protected int z;
public Point3D(int x, int y) {
this(x, y, 0);
}
public Point3D(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}}
//定義二維的位置
class Position2D {
Point2D location;
public Position2D() {
this.location = new Point2D();
}
public Position2D(int x, int y) {
this.location = new Point2D(x, y);
}
public Point2D getLocation() {
return location;
}}
//定義三維的位置,繼承二維的位置
class Position3D extends Position2D {
Point3D location; //在這里已經變成Point3D的類型了
public Position3D(int x, int y, int z) {
this.location = new Point3D(x, y, z);
}
@Override //注釋是重寫方法
public Point3D getLocation() {
return location; //返回是子類的類型而不是原來的類型了
}
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乌珠穆沁旗| 孙吴县| 马鞍山市| 都匀市| 滦平县| 兴城市| 永嘉县| 游戏| 新龙县| 乐昌市| 襄汾县| 商河县| 惠安县| 山丹县| 镶黄旗| 南开区| 西宁市| 千阳县| 贡嘎县| 临武县| 阳曲县| 博罗县| 明水县| 长顺县| 赣州市| 古浪县| 桐城市| 博湖县| 乐亭县| 广德县| 湖南省| 鹤山市| 马关县| 福建省| 大庆市| 巴里| 高阳县| 青岛市| 华容县| 三原县| 阳原县|