Kotlin delegated
Class Delegation
Mẫu Delegation đã được chứng minh là cách thay thế tốt cho việc kế thừa và Kotlin hỗ trợ mẫu này native và không cần một chút boilerplate code nào. Chúng ta xem VD sau:
Lớp Derived có thể kế thừa từ interface(chỉ có thể sử dụng delegation với interface) Base và ủy thác tất cả các public method cho một đối tượng xác định. Tức là, lớp Derived tuy kế thừa từ interface Base nhưng không phải implement function print() từ interface Base mà ủy thác cho đối tượng b có kiểu là BaseImpl, lớp cũng kế thừa từ Base và implement function print().
Mệnh đề by biểu thị rằng b sẽ được lưu bên trong đối tượng Derived và compiler sẽ sinh ra tắt cả các method của Base cho Derived mà b đã implement
Lưu ý rằng lớp Derived cũng có thể tự override lại function print() thay vì sử dụng các function của object được ủy thác.