提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助檔案
目錄
文章目錄
前言
一、重寫是什么?
二、多載和重寫的區別
三.如何理解多型
四.使用多型的好處
總結
前言
付訓了個新的模板,頭一回使用,感覺這樣寫出來比較簡潔明了,關于多載重寫多型這一塊,定義較多,有時候感徑訓蠻難理解的,花了兩個小時,簡單整理歸納了下,如有不當之處,多多指教,也希望自己越來越好,
一、重寫是什么?
子類實作父類的同名方法, 并且引數的型別和個數完全相同, 這種情況稱為 覆寫/重寫/覆寫(Override).
二、多載和重寫的區別
這里簡單說下和重寫的區別
| 區別 | 多載 | 重寫 | |
| 第一點 | 概念 | 方法名稱相同,引數型別和個數不同 | 方法名稱、回傳值型別,引數型別以及個數完全相同 |
| 第二點 | 范圍 | 一個類 | 繼承關系 |
| 第三點 | 限制 | 無權限要求 | 被重寫的方法不能有比父類更嚴格的訪問權限 |
三.如何理解多型
代碼如下(示例):
class Shape {
public void draw() {
// 啥都不用干
}
}
class Cycle extends Shape {
@Override
public void draw() {
System.out.println("○");
}
}
class Rect extends Shape {
@Override
public void draw() {
System.out.println("□");
}
}
class Flower extends Shape {
@Override
public void draw() {
System.out.println("?");
}
}
/我是分割線//
// Test.java
public class Test {
public static void main(String[] args) {
Shape shape1 = new Flower();
Shape shape2 = new Cycle();
Shape shape3 = new Rect();
drawMap(shape1);
drawMap(shape2);
drawMap(shape3);
}
// 列印單個圖形
public static void drawShape(Shape shape) {
shape.draw();
}
}
四.使用多型的好處
public static void drawShapes() {
Rect rect = new Rect();
Cycle cycle = new Cycle();
Flower flower = new Flower();
String[] shapes = {"cycle", "rect", "cycle", "rect", "flower"};
for (String shape : shapes) {
if (shape.equals("cycle")) {
cycle.draw();
} else if (shape.equals("rect")) {
rect.draw();
} else if (shape.equals("flower")) {
flower.draw();
}
}
}
public static void drawShapes() {
// 我們創建了一個 Shape 物件的陣列.
Shape[] shapes = {new Cycle(), new Rect(), new Cycle(),
new Rect(), new Flower()};
for (Shape shape : shapes) {
shape.draw();
}
}
總結
以上就是重寫和多載的主要區別以及多型的含義以及優勢!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295157.html
標籤:java
上一篇:# Day15-Java基礎
