Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File
- import java.io.FileWriter
- import java.io.InvalidObjectException
- import javax.management.ImmutableDescriptor
- import kotlin.random.Random
- open class Arma(var nome: String, protected open var dannoBase: Int = 1) {
- init { require(dannoBase>=0) }
- //costrutture secondario che assicura univocitΓ del nome scelto per l'arma
- constructor (uniqueName: String) : this(uniqueName,0)
- {
- //logica che verifica che nessun'altra arma sia stata chiamatata
- //con lo stesso nome; se scopre
- println("passato di qui")
- }
- open fun spara() {
- println("Danno cinetico: $dannoBase")
- }
- }
- class ArmaElettrica : Arma {
- override var dannoBase : Int = 2
- get() {return field;}
- set(value) {field = value}
- var livelloDannoElementale: Int = 1
- constructor(nome: String, livelloDannoElementale: Int) : super("")
- {
- require(livelloDannoElementale in 1..5)
- this.livelloDannoElementale = livelloDannoElementale
- }
- constructor() : this("", 4) {}
- fun metodoClasseFiglia() {
- //println(dannoBase)
- }
- override fun spara() {
- super.spara()
- println("Danno ELETTRICO: ${dannoBase+10*livelloDannoElementale}")
- }
- }
- fun main() {
- //val unArmaElettrica = ArmaElettrica()
- //println("${unArmaElettrica.nome} ${unArmaElettrica.metodoClasseFiglia()}" )
- //unArmaElettrica.spara()
- val unArma = ArmaElettrica("boom", 5)
- println(unArma.spara())
- }
Advertisement
Add Comment
Please, Sign In to add comment