国产探花免费观看_亚洲丰满少妇自慰呻吟_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; //返回是子類的類型而不是原來的類型了
}
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 门头沟区| 霍州市| 叙永县| 商都县| 巴林右旗| 封丘县| 永顺县| 金昌市| 正镶白旗| 南召县| 怀宁县| 昆山市| 乌什县| 辰溪县| 建德市| 威信县| 临颍县| 南宫市| 寿光市| 施甸县| 方正县| 漯河市| 开封县| 会同县| 淄博市| 乐都县| 毕节市| 来安县| 和林格尔县| 永兴县| 广东省| 清丰县| 新竹县| 望谟县| 赞皇县| 新津县| 贵港市| 香格里拉县| 台东市| 钟山县| 大洼县|