Your question is very general and vague. This makes it hard to give you a clear and specific answer.
A constructor is a block of code in a class that is called to initialize a new instance of the class. See Providing Constructors for Your Classes for more information. Polymorphism is an important principle in object oriented programming.
Learning to apply object oriented programming concepts comes with experience. Ofcourse there are also books about this subject. One good book is Effective Java, but there are also others - search for books on object oriented analysis and design.
I don't understand why you feel the need to ask such a question.
you should implement proper coding whenever you want a proper project. You can omit proper coding when you want to write rubbish. And assuming you never want to write rubbish, you want proper coding all the time. For example, you should write a constructor for every class you write. Even for classes you don't want to instantiate.