Created
September 12, 2018 14:12
-
-
Save javierfernandes/7e6c5670f34cdd245ea6c0b4497a8be7 to your computer and use it in GitHub Desktop.
Mixins - Aves - en clase 11/09/2018
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package aves { | |
| trait ConEnergia { | |
| private var energia = 200.0 | |
| def reducirEnergia(cuanto: Double) = { | |
| energia -= cuanto | |
| } | |
| } | |
| trait NoSeCansa extends ConEnergia { | |
| override def reducirEnergia(cuanto: Double) = {} | |
| } | |
| trait SeCansaElDoble extends ConEnergia { | |
| override def reducirEnergia(cuanto: Double) = { | |
| super.reducirEnergia(cuanto * 2) | |
| } | |
| } | |
| trait Volador extends ConEnergia { | |
| def volar(kms: Double) = { | |
| reducirEnergia(kms * 1.2) | |
| } | |
| } | |
| trait VoladorQueRegistra extends Volador { | |
| var kmsVolados = 0.0 | |
| override def volar(kms: Double) = { | |
| super.volar(kms) | |
| kmsVolados += kms | |
| } | |
| } | |
| trait Nadador extends ConEnergia { | |
| def nadar(millasNauticas: Double) = { | |
| reducirEnergia(millasNauticas * 0.3) | |
| } | |
| } | |
| class Animal { | |
| var padre: Animal = _ | |
| var madre: Animal = _ | |
| } | |
| class Ave extends Animal { | |
| var colorDePlumaje = "gris" | |
| } | |
| class Golondrina extends Ave with Volador {} | |
| class Pato extends Ave with Volador with Nadador with NoSeCansa {} | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment