A constructor is a special block of code used to initialize a new object immediately after it is created. It has no return type and shares the same name as the class. Constructor overloading allows a class to have multiple constructors with different parameters, enabling flexible object creation.
Ordering a Pizza. One constructor might be 'Pizza()' (default cheese pizza), another might be 'Pizza(String[] toppings)' (custom toppings), another might be 'Pizza(String size, String[] toppings, boolean extraCheese)'.
If you define a parameterized constructor in your class, what happens to the default no-argument constructor?