Một class có nhiều constructor trùng tên class nhưng khác tham số (kiểu, số lượng, hoặc thứ tự).
Compiler chọn đúng version dựa trên argument lúc gọi.
java
public class Box {
public Box() { this(1, 1, 1); } // default
public Box(int size) { this(size, size, size); } // cube
public Box(int l, int w, int h) { /* ... */ }
}
new Box(); // 1×1×1
new Box(5); // 5×5×5
new Box(2, 3, 4); // 2×3×4Gọi constructor khác trong cùng class qua this(...), gọi constructor parent qua super(...) — cả hai bắt buộc đứng đầu.
Khi tham số nhiều/nhiều combo optional, ưu tiên Builder pattern hoặc record (Java 16+) thay vì đẻ ra hàng tá constructor.