Skip to content

Instantly share code, notes, and snippets.

@Jacke
Created July 13, 2021 23:25
Show Gist options
  • Select an option

  • Save Jacke/f9c9192b43c958f5832d2013a7426d4c to your computer and use it in GitHub Desktop.

Select an option

Save Jacke/f9c9192b43c958f5832d2013a7426d4c to your computer and use it in GitHub Desktop.
upper_type_bound ART
abstract class Animal {
def name: String
}
abstract class Pet extends Animal {}
class Cat extends Pet {
override def name: String = "Cat"
}
class Dog extends Pet {
override def name: String = "Dog"
}
class Lion extends Animal {
override def name: String = "Lion"
}
class PetContainer[P <: Pet](p: P) {
def pet: P = p
}
val dogContainer = new PetContainer[Dog](new Dog)
val catContainer = new PetContainer[Cat](new Cat)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment