在Java中,構造函數(Constructor)是一種特殊的方法,用于初始化對象。構造函數的名稱與類名相同,沒有返回類型。構造函數可以重載,即可以有多個構造函數,但參數列表必須不同。
繼承(Inheritance)是面向對象編程的一個重要特性,它允許一個類(子類)繼承另一個類(父類)的屬性和方法。繼承的主要目的是為了代碼復用和提高代碼的可維護性。
多態(Polymorphism)是指允許一個接口或類具有多個實現,或者一個對象可以表現出多種形態。多態的主要目的是提高代碼的靈活性和可擴展性。
在Java中,繼承和多態的實現主要依賴于以下幾點:
extends
關鍵字,子類可以繼承父類的屬性和方法。例如:class Animal {
void eat() {
System.out.println("Animal is eating");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog is barking");
}
}
abstract class Shape {
abstract void draw();
}
class Circle extends Shape {
void draw() {
System.out.println("Drawing a circle");
}
}
class Rectangle extends Shape {
void draw() {
System.out.println("Drawing a rectangle");
}
}
public class Main {
public static void main(String[] args) {
Shape shape1 = new Circle();
Shape shape2 = new Rectangle();
shape1.draw(); // 輸出 "Drawing a circle"
shape2.draw(); // 輸出 "Drawing a rectangle"
}
}
在這個例子中,我們使用了抽象類Shape
和兩個子類Circle
和Rectangle
。我們創建了兩個Shape
類型的引用變量shape1
和shape2
,分別引用Circle
和Rectangle
對象。當我們調用shape1.draw()
和shape2.draw()
時,會根據實際對象的類型調用相應的draw()
方法,實現了多態。