---
title: Không sử dụng override trong extension
impact: CRITICAL
impactDescription: Tránh thay đổi hành vi định nghĩa ban đầu của lớp cha qua extension, giữ code ổn định và dễ dự đoán.
tags: swift, ios, extension, override, architecture
---

## Không sử dụng override trong extension

Không được `override` thuộc tính hoặc phương thức của lớp cha bên trong một `extension`. Extension được thiết kế để mở rộng tính năng chứ không phải để thay đổi hành vi thừa kế. Nếu cần override, hãy thực hiện việc này trong định nghĩa của chính class đó hoặc class con.

**Incorrect (override trong extension):**

```swift
extension MyViewController {
    override func viewDidLoad() { // Nguy hiểm: Không nên override ở đây
        super.viewDidLoad()
    }
}
```

**Correct (override trong class chính):**

```swift
class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
```

**Tools:** SwiftLint (override_in_extension)
