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