It creates a class "b" object. In essence you could say that class "b" is just a copy paste of class "a" and then whatever else you add. In Java the ":" is read as "extends", so your declaration of class "b" could be read as "class b extends class a". Meaning that class "b" just takes what class "a" has and builds on top of it, or extends from it. They both are completely individual classes, though, so creating "b" objects doesn't create any "a" objects, only "b" objects.