4

Scala を始めたばかりで、いくつかの基本をクリアしたいと考えています。以下の関数では、下限は Puppy に設定されています。以下のコードで Puppy1 と Puppy2 が許可されているのはなぜですか。

class Animal
class Dog extends Animal
class Puppy extends Animal
class Puppy1 extends Animal
class Puppy2 extends Puppy

class AnimalCarer{
    def display [T >: Puppy](t: T){
    println(t)
    }
}

val animal = new Animal
val dog = new Dog
val puppy = new Puppy
val puppy1 = new Puppy1
val puppy2 = new Puppy2

val animalCarer = new AnimalCarer
animalCarer.display(animal)
animalCarer.display(puppy)
animalCarer.display(puppy1)
animalCarer.display(puppy2)
animalCarer.display(dog)
4

2 に答える 2