Implementation by Delegation

اگه بخواییم یک اینترفیس رو پیاده سازی کنیم ولی تمام متدهای اون رو پیاده سازی نکنیم (یک کلاس دیگه داریم که همون اینترفیس رو پیاده سازی کرده و ما فقط می‌خوایم یکسری تغییر توی اون ایجاد کنیم).

interface Base
class BaseImpl() : Base
class Derived(n: Base) : Base by n

const val VS val

const یک ثابت کامپایل تایم هست، یعنی مقدار آن در زمان کامپایل مشخص می‌شود بر خلاف val که میتوان داده آن را در زمان اجرا مشخص کرد.

این به این معنی است که مقدار const را نمیتوان برابر با یک متد یا یک کلاس قرار داد. مقدار آن باید primitive باشد مانند String.

همچنین const در جاوا public static final می‌شود در حالی که val در جاوا private static final می‌شود.

+ +