Java作為一門面向對象的編程語言,重載(overloading)和覆蓋(overriding)是其重要特性之一。下面我們來深入了解這兩個概念。
重載是指同一個類中,有多個方法名相同但參數類型和個數不同的方法。可以通過這些方法名進行調用,Java根據方法的參數列表來判斷調用哪個方法。下面是一個簡單的例子:
public class Example { public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } }
該例子中有兩個名為add的方法,分別接受兩個和三個int類型的參數。在不同的場景下,我們可以通過這兩個方法名來調用對應的方法。
覆蓋也稱為重寫,是指在子類中重寫父類中已有的方法。子類中的這個方法必須與父類中的方法具有相同的名稱、返回類型和參數列表,但可以有不同的方法實現。當對象調用該方法時,Java編譯器會在編譯時靜態綁定到子類的方法。下面是一個示例:
public class Animal { public void move() { System.out.println("動物移動"); } } public class Dog extends Animal { public void move() { System.out.println("狗跑"); } }
在這個例子中,Dog是Animal的子類并重寫了move方法,當我們調用move方法并指向Dog對象時,程序將輸出“狗跑”。這是因為Java編譯器會將方法靜態綁定到Dog類的move方法。
上一篇java的節點流和處理流
下一篇php hook鉤子