With this, you implicitly extend A
. What you did is syntactic sugar, equivalent to this:
class A' extends A {
val a = 3
}
val a = new A'
These brackets merely let you extend a class on the fly, creating a new, anonymous class, which instantiates the value a
and is therefore not abstract any more.