Java是一種面向對象的編程語言,其中的繼承和多態是OOP的重要特性。盡管二者都涉及到類之間的關系,但它們具有不同的含義和用法。
繼承是一種類與另一個類之間的關系,其中一個類是另一個類的子類。子類可以使用父類的屬性和方法,并添加或修改它們。繼承的主要優點是節省代碼和提高代碼的可重用性。例如:
class Animal { public void makeSound(){ System.out.println("Animal sound"); } public void move(){ System.out.println("Animal move"); } } class Cat extends Animal { public void makeSound(){ System.out.println("Meow"); } public void scratch(){ System.out.println("Cat scratch"); } }
在上面的例子中,Cat類繼承了Animal類,因此它可以使用Animal類中的屬性和方法。Cat類還添加了自己的方法——scratch()。
多態是另一種OOP特性,它允許不同的對象以不同的方式響應相同的方法調用。多態利用了繼承和覆蓋方法的概念。例如:
class Shape { public void draw(){ System.out.println("Shape drawing"); } } class Circle extends Shape { public void draw(){ System.out.println("Circle drawing"); } }
在上面的例子中,Circle類覆蓋了Shape類的draw()方法。當調用圓形對象的draw()方法時,將顯示“Circle drawing”,而不是“Shape drawing”。多態性可以增加程序的靈活性和可擴展性。
結論:
- 繼承是子類使用父類屬性和方法的機制,它提高了代碼的可重用性和可維護性。
- 多態是對象響應相同方法調用的不同方式,它提高了程序的靈活性和可擴展性。