should. abstract class have constructor java