Inheritance/Multiple: Difference between revisions

Kotlin snippet updated
(Kotlin snippet updated)
Line 554:
to be abstract or to provide accessor implementations.
 
<lang scala>packageinterface multiple_inheritanceCamera {
 
interface Camera {
val numberOfLenses : Int
}
Line 562 ⟶ 560:
interface MobilePhone {
fun charge(n : Int) {
if (n >= 0) {
battery_level += (battery_level + n).coerceAtMost(100)
if (battery_level > 100) battery_level = 100
}
}
 
Line 576 ⟶ 572:
fun main(args: Array<String>) {
val c = CameraPhone(1, 50)
 
println(c)
c.charge(35)
println(c)
c.charge(78)
println(c)
println(listOf(c.javaClass.superclass) + c.javaClass.interfaces)
Line 588 ⟶ 585:
<pre>CameraPhone(numberOfLenses=1, battery_level=50)
CameraPhone(numberOfLenses=1, battery_level=85)
CameraPhone(numberOfLenses=1, battery_level=100)
[class java.lang.Object, interface multiple_inheritance.Camera, interface multiple_inheritance.MobilePhone]
TwinLensCamera(numberOfLenses=2)
Anonymous user