Есть 3 класса - A,B,C. В каждом из них есть уникальные и переопределенные методы
open class A{
open fun method(){
println("Method from class - A")
}
open fun aMethod(){
println("Unique method from class - A ")
}
}
open class B :A(){
override fun method() {
println("Method from class - B")
}
open fun bMethod(){
println("Unique method from class - B ")
}
}
open class C : B(){
override fun method(){
println("Method from class - C")
}
open fun cMethod(){
println("Unique method from class - C ")
}
}
Почему с помощью "умного приведения" ссылки на класс C к типу класса А - я имею доступ к методу класса B?
val ref = C()
if(ref is A){
ref.cMethod()
ref.bMethod()
}