Are constructors matched against using "switch" or chained if-else