``` interface FunkyInterface { fun doFu...
# announcements
r
Copy code
interface FunkyInterface {
        fun doFunkyStuff(): Unit
    }

    open class BaseClass (val a: FunkyInterface) : FunkyInterface by a {
        private fun somePrivateFunction(): Unit {}
    }

    // Here you have to pass either a default implementation
    // or a full implementation of the interface (NonDefaultImplementation)

    class ExtendedClass : BaseClass(NonDefaultImplementation())

    class NonDefaultImplementation : FunkyInterface {
        override fun doFunkyStuff() {
            throw UnsupportedOperationException("not implemented")
        }
    }