Gerçekten onları oluşturmuyorsunuz. Java ile paralel çizdiğinizde, daha da ileri gidelim. Java'da soyut bir sınıftan veya bir Arayüzden bir Anonim sınıf oluşturabilirsin. Bu Scala neredeyse aynıdır: Bir özelliğin bir nesne oluşturduğunuzda küme parantezleri zorunlu olan
scala> trait A
defined trait A
scala> new A {}
res0: A = [email protected]
Not söyledi. Örneğin, şo yapamaz:
scala> new A
<console>:9: error: trait A is abstract; cannot be instantiated
new A
^
it would bir sınıf için mükemmel çalışıyor olsa da:
senin özelliğin bazı unsurlar uygulanmaması halinde Elbette
scala> class B
defined class B
scala> new B
res2: B = [email protected]
, size oluştururken bunları uygulamak gerekir nesne:
scala> trait C {def foo: Int}
defined trait C
scala> new C {}
<console>:9: error: object creation impossible, since method foo in trait C of type => Int is not defined
new C {}
^
scala> new C {def foo = 42}
res4: C = [email protected]
Java: 'arabirimi Bar {}; Bar bar = yeni Bar() {}; – soc