Advertisement
ZivkicaI

InheritanceAndPolymorphism

Nov 27th, 2019
532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.48 KB | None | 0 0
  1. package exercises.part2oop
  2.  
  3. object Inheritance extends App {
  4.  
  5.   class Animal{
  6.     def eat=println("nomnom") //ako beshe private Cat klasata nemashe da moze da pristapi do toj metod
  7.     val creatureType="wild"  //vo drugite klasi ako napravam override na ovaa promenliva nema da bide tipot Wild tuku soodvetno shto e vo dr klasa
  8.   }
  9.  
  10.   class Cat extends Animal { //nasleduvanje
  11.     def crunch={
  12.       eat// a tuka protected moze da pomine!!!!
  13.       println("crunch crunch")
  14.     }
  15.   }
  16.  
  17.   val cat=new Cat
  18.   //cat.eat ova ne moze da pomine zatoa shto e protected!!!
  19.   cat.crunch
  20.  
  21.   //CONSTRUCTORS
  22.  
  23.   class Person(name:String, age:Int){
  24.     def this(name:String) = this(name,0)  //konstruktor so predefinirana vrednost za age ako ne e dadena
  25.   }
  26.  
  27.   class Adult(name:String, age:Int, idCard:String) extends Person(name) //tuka kaj person kje projde zoshto vo klasata Person imame konstruktor i za samo eden parametar
  28.  
  29.   //OVERRIDING
  30.  
  31.   class Dog(override val creatureType: String) extends Animal{
  32.    // override val creatureType: String = "friendly"  //oveeridnata e val od Animal zatoa nema wild da printa
  33.     override def eat= {
  34.       super.eat  //super kje go povika eat method-ot od animal!!!
  35.       println("crunch, crunch")
  36.     }
  37.   }
  38.   val dog= new Dog("K9")  //dog e objekt od Dog
  39.   dog.eat // sega eat kje moze da bide pristapena iako gore e protected
  40.   println(dog.creatureType)
  41.  
  42.  
  43.   //POLYMORPHISM
  44.   val unknownAnimal:Animal=new Dog("helper")
  45.   unknownAnimal.eat
  46.  
  47.  
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement