1. What are the main principles of Object Oriented Programming?
Main principles of Object Oriented Programming (OOPS) are:
2. What is the difference between Object Oriented Programming language and Object Based Programming language?
Object Oriented Programming languages like Java and C++ follow concepts of OOPS like- Encapsulation, Abstraction, Polymorphism and Inheritance etc.
Object Based Programming languages provide support for Objects and you can build objects from constructor. They languages also support Encapsulation. These are also known as Prototype-oriented languages.
3. In Java what is the default value of an object reference defined as an instance variable in an Object?
All the instance variable object references in Java are null.
4. Why do we need constructor in Java?
Java is an object-oriented language, in which we create and use objects. A constructor is a piece of code similar to a method. It is used to create an object and set the initial state of the object.
A constructor is a special function that has same name as class name.
Without a constructor, there is no other way to create an object.
By default, Java provides a default constructor for every object. If we overload a constructor then we have to implement default constructor.
5. Why do we need default constructor in Java classes?
Default constructor is the no-argument constructor that is automatically generated by Java if no other constructor is defined.
Java specification says that it will provide a default constructor if there is no overloaded constructor in a class. But it does not say anything about the scenario in which we write an overloaded constructor in a class.
We need at least one constructor to create an object, that’s why Java provides a default constructor.
When we have overloaded constructor, then Java assumes that we want some custom treatment in our code. Due to which it does not provide default constructor. But it needs default constructor as per the specification. So it gives error.
6. What is the value returned by Constructor in Java?
When we call a constructor in Java, it returns the object created by it. That is how we create new objects in Java.
7. Can we inherit a Constructor?
No, Java does not support inheritance of constructor.
8. Why constructors cannot be final, static, or abstract in Java?
If we set a method as final it means we do not want any class to override it. But the constructor (as per Java Language Specification) cannot be overridden. So there is no use of marking it final.
If we set a method as abstract it means that it has no body and it should be implemented in a child class. But the constructor is called implicitly when the new keyword is used. Therefore it needs a body.
If we set a method as static it means that it belongs to the class, but not a particular object. The constructor is always called to initialize an object. Therefore, there is no use of marking constructor static.