Tôi đang cố gắng để mở rộng, trong Java, một Kotlin ủy lớp và nhận được lỗi sau:Tôi có thể mở rộng, trong Java, một lớp học ủy thác Kotlin không?
Cannot inherit from final 'Derived'
Xem mã dưới đây.
Điều tôi đang cố làm là trang trí phương thức của một lớp.
Bất kỳ ý tưởng nào tại sao Kotlin xác định Derived
là cuối cùng? Có cách nào cho số Derived
không phải là cuối cùng để tôi có thể kế thừa không?
Java:
new Derived(new BaseImpl(10)) { // Getting the error on this line: `Cannot inherit from final 'Derived'`
};
Kotlin:
interface Base {
fun print()
}
class BaseImpl(val x: Int) : Base {
override fun print() { print(x) }
}
class Derived(b: Base) : Base by b
* Ví dụ từ đây: https://kotlinlang.org/docs/reference/delegation.html