Czesc,
potrzebuje pomysl na funkcje ktora przyjmuje obiekty roznych klas, ma ktos pomysl jak to uogolnic ? np type() mogla przyjmowac tez obiekt klasy kwadrat, doradzi cos ktos ? ;)
def type(t1: trojkat): Unit = {
}
Czesc,
potrzebuje pomysl na funkcje ktora przyjmuje obiekty roznych klas, ma ktos pomysl jak to uogolnic ? np type() mogla przyjmowac tez obiekt klasy kwadrat, doradzi cos ktos ? ;)
def type(t1: trojkat): Unit = {
}
trait Shape
class Triangle extends Shape
class Square extends Shape
def `type`(t1: Shape): Unit
Hasło brzmi: Polimorfizm i implementacja interfejsów
Chociaż w przypadku Scali są to cechy (ang. traits
)
a co w sytuacji gdy chce w funkcji type(t1: Shape, t2: Shape) porownac t1 == t2, bo gdy w przekazuje t1 = new Triangle i w Triangle mam def == ale ta funkcja nie zostaje wtedy uzyta uzyta
Shape
==
a equals
które jest używane przez ==
.==
to możliwe że potrzebujesz CASE CLASSES
uzywam traits i wszystko sprawdza sie super jedynie nie moge rozw tego problemu z porownaniem np w klasie Triangle extends Shape
def == (that Triangle): Boolean ={
side == that.side
ale chcialbym zrobic override def ==
tylko sygnatura == w Shape nie pasuje tu
def == (that Shape): Boolean
Zamień klasy na klasy przypadków i dostaniesz implementacje ==
za darmo
czyli:
case class Triangle extends Shape
case class Square extends Shape