Monday, September 7, 2009

Java Objects and Classes

Objects and Classes

What's the difference between constructors and other methods

Constructors must have the same name as the class and can not return a value. They are only called once while regular methods could be called many times.

What is the difference between Overloading and Overriding

Overloading : Reusing the same method name with different arguments and perhaps a different return type is called as overloading
Overriding : Using the same method name with identical arguments and return type is know as overriding

What do you understand by late binding or virtual method Invocation. (Example of runtime polymorphism)

When a compiler for a non object oriented language comes across a method invocation, it determines exactly what target code should be called and build machine language to represent that call. In an object oriented language, this is not possible since the proper code to invoke is determined based upon the class if the object being used to make the call, not the type of the variable. Instead code is generated that will allow the decision to be made at run time. This delayed decision making is called as late binding

Can overriding methods have different return types

No they cannot have different return types

If the method to be overridden has access type protected, can subclass have the access type as private

No, it must have access type as protected or public, since an overriding method must not be less accessible than the method it overrides

Can constructors be overloaded

Yes constructors can be overloaded

What happens when a constructor of the subclass is called

A constructor delays running its body until the parent parts of the class have been initialized. This commonly happens because of an implicit call to super() added by the compiler. You can provide your own call to super(arguments..) to control the way the parent parts are initialized. If you do this, it must be the first statement of the constructor.

If you use super() or this() in a constructor where should it appear in the constructor

It should always be the first statement in the constructor

What is an inner class

An inner class is same as any other class, but is declared inside some other class

How will you reference the inner class

To reference it you will have to use OuterClass$InnerClass

Can objects that are instances of inner class access the members of the outer class

Yes they can access the members of the outer class

What modifiers may be used with an inner class that is a member of an outer class?

A (non-local) inner class may be declared as public, protected, private, static, final, or abstract

Can inner classes be static

Yes inner classes can be static, but they cannot access the non static data of the outer classes, though they can access the static data

Can an inner class be defined inside a method

Yes it can be defined inside a method and it can access data of the enclosing methods or a formal parameter if it is final

What is an anonymous class

Some classes defined inside a method do not need a name, such classes are called anonymous classes

What are the rules of anonymous class

The class is instantiated and declared in the same place
The declaration and instantiation takes the form
new Xxxx () {// body}
Where Xxxx is an interface name.
An anonymous class cannot have a constructor. Since you do not specify a name for the class, you cannot use that name to specify a constructor

 

No comments:

Post a Comment