Java是一門面向?qū)ο蟮木幊陶Z言,多態(tài)和重寫是其中非常重要的兩個(gè)概念。
多態(tài)是指不同的對象可以用相同的接口進(jìn)行操作,這樣可以提高代碼的靈活性和通用性,減少了代碼的重復(fù)性。Java中實(shí)現(xiàn)多態(tài)主要靠兩個(gè)機(jī)制:繼承和接口。
// 父類Animal public class Animal { public void move() { System.out.println("動物在移動"); } } // 子類Dog public class Dog extends Animal { public void move() { System.out.println("狗在跑"); } public void bark() { System.out.println("狗在叫"); } } // 子類Cat public class Cat extends Animal { public void move() { System.out.println("貓?jiān)谧?); } public void scratch() { System.out.println("貓?jiān)谧?); } } // 多態(tài)的應(yīng)用 public class PolymorphismDemo { public static void main(String[] args) { Animal animal1 = new Dog(); Animal animal2 = new Cat(); animal1.move(); animal2.move(); } }
以上代碼中, Animal是一個(gè)父類,Dog和Cat是它的子類,它們都有自己的move方法。在PolymorphismDemo中,我們用Animal類型的變量去引用Dog和Cat類型的對象,最終調(diào)用它們的move方法,這就是多態(tài)。
重寫是指子類中重寫了父類的某個(gè)方法,這樣在調(diào)用該方法時(shí)將調(diào)用子類的方法而不是父類的方法。
// 父類Animal public class Animal { public void move() { System.out.println("動物在移動"); } } // 子類Dog public class Dog extends Animal { public void move() { System.out.println("狗在跑"); } } // 重寫的應(yīng)用 public class OverrideDemo { public static void main(String[] args) { Animal animal = new Dog(); animal.move(); } }
以上代碼中,我們在Dog類中重寫了Animal類的move方法,最終調(diào)用move方法時(shí)將會調(diào)用Dog類中的方法而不是Animal類中的方法。