在Java中,有兩個基本的概念,覆蓋和隱藏,這兩個概念經常被用于面向對象編程的開發中。
覆蓋(Override)是當子類中的方法與父類中的方法名、返回類型和參數列表都相同時,子類中的方法將覆蓋父類中的方法。
public class Animal{ public void move(){ System.out.println("動物可以移動"); } } public class Dog extends Animal{ public void move(){ System.out.println("狗可以跑和走"); } } public class TestDog{ public static void main(String[] args){ Animal a = new Animal(); Animal b = new Dog(); a.move(); b.move(); } }
在這個例子中,類Animal和類Dog都有一個名為move()的方法,當執行b.move()時,編譯器會執行Dog類中的覆蓋方法move()。
隱藏(Hidden)是當子類中的靜態字段或靜態方法與父類中的靜態字段或靜態方法名相同時,子類中的靜態字段或靜態方法會隱藏父類中的靜態字段或靜態方法。
class Animal{ public static void foo(){ System.out.println("Animal"); } } class Dog extends Animal{ public static void foo(){ System.out.println("Dog"); } } public class TestDog{ public static void main(String[] args){ Animal a = new Animal(); Animal b = new Dog(); a.foo(); b.foo(); } }
在這個例子中,輸出結果為:
Animal Dog
因為在Animal類和Dog類中,都有一個名為foo()的靜態方法,當執行a.foo()時,編譯器會執行Animal類中的靜態方法foo();當執行b.foo()時,編譯器會執行Dog類中的隱藏方法foo()。
上一篇java 參數和變量
下一篇css 好的教程下載