Hello
guys....
Lets now focus on topic wise some important interview and
conceptual question on asp.net as well as sql server.
2.OOPS
CONCEPTS!!!DID I DROP SOMETHING
2.1)LETS FIRST GET SOME BASIC DEFINATION CLEAR AND THEN MOVE
TO MINDCRACKING QUESTIONSSSSSSSS(Oh tough word )...................
2.1) What is Object
Oriented Programming ?
It is a problem solving technique to develop software
systems. It is a technique to think real world in terms of objects. Object maps
the software model to real world concept. These objects have responsibilities
and provide services to application or other objects.
What’s a Class ?
A
class describes all the attributes of objects, as well as the methods that
implement the behavior of member objects. It’s a comprehensive data type which
represents a blue print of objects. It’s a template of object.
What’s an Object ?
It is a basic unit of a system. An object is an entity
that has attributes, behavior, and identity. Objects are members of a class.
Attributes and behavior of an object are defined by the class definition.
What is the relation
between Classes and Objects ?
They
look very much same but are not same. Class is a definition, while object is a
instance of the class created. Class is a blue print while objects are actual
objects existing in real world. Example we have class CAR which has attributes
and methods like Speed, Brakes, Type of Car etc. Class CAR is just a prototype,
now we can create real time objects which can be used to provide functionality.
Example we can create a Maruti car object with 100 km speed and urgent brakes.
What are different
properties provided by Object-oriented systems ?
Twist :- Can you explain different properties of Object Oriented
Systems? Note:- Difference between abstraction and encapsulation is one of the
favorite interview question and quiet confusing as both the terminology look
alike. Best is if you can brainstorm with your friends or do a little reading. Following
are characteristic’s of Object Oriented System’s
Abstraction
It allows complex real world to be represented in
simplified manner. Example color is abstracted to RGB. By just making the
combination of these three colors we can achieve any color in world.It’s a
model of real world or concept.
Encapsulation It
is a process of hiding all the internal details of an object from the outside
world.
Communication using messages When
application wants to achieve certain task it can only be done using combination
of objects. A single object can not do all the task. Example if we want to make
order processing form.We will use Customer object, Order object, Product object
and Payment object to achieve this functionality. In short these objects should
communicate with each other. This is achieved when objects send messages to
each other.
Object lifetime All
objects have life time.Objects are created ,and initialized, necessary
functionalities are done and later the object is destroyed. Every object have
there own state and identity which differ from instance to instance.
Class hierarchies (Inheritance and aggregation)
Twist :- What is difference between Association, Aggregation and
Inheritance relationships?
In
object oriented world objects have relation and hierarchies in between them.
There are basically three kind of relationship in Object Oriented world :-
Association
This is the simplest relationship between objects. Example every
customer has sales. So Customer object and sales object have an association
relation between them.
Aggregation
This is also called as composition model. Example in order to
make a “Accounts” class it has use other objects example “Voucher”, “Journal”
and “Cash” objects. So accounts class is aggregation of these three objects.
Inheritance Hierarchy is used to define more
specialized classes based on a preexisting generalized class. Example we have
VEHICLE class and we can inherit this class make more specialized class like
CAR, which will add new attributes and use some existing qualities of the
parent class. Its shows more of a parent-child relationship. This kind of
hierarchy is called inheritance.
Polymorphism When
inheritance is used to extend a generalized class to a more specialized class,
it includes behavior of the top class(Generalized class). The inheriting class
often implement a behavior that can be somewhat different than the generalized
class, but the name of the behavior can be same. It is important that a given
instance of an object use the correct behavior, and the property of
polymorphism allows this to happen automatically.
2.2) How can we acheive inheritance in ASP.NET, C#?
Base and Derived
Classes
A class can be
derived from more than one class or interface, which means that it can inherit
data and functions from multiple base class or interface.
The syntax used in
C# for creating derived classes is as follows:
Example:
using System;
namespace InheritanceApplication
{ class Shape
{
public void setWidth(int w)
{
width = w; }
public void setHeight(int h)
{
height = h; }
protected int width;
protected int height;
}
// Derived class
class Rectangle: Shape
{
public int getArea()
{
return (width * height); }
}
class RectangleTester
{
static void Main(string[] args)
{
Rectangle Rect = new Rectangle();
Rect.setWidth(5);
Rect.setHeight(7);
// Print the area of the object.
Console.WriteLine("Total area:
{0}", Rect.getArea());
Console.ReadKey(); }
} }
Multiple Inheritance in C#
C# does not support multiple inheritance. However, you can use
interfaces to implement multiple inheritance. The following program
demonstrates this:
using System;
namespace InheritanceApplication
{
class Shape
{
public void setWidth(int w)
{
width = w;
}
public void setHeight(int h)
{
height = h;
}
protected int width;
protected int height;
}
// Base class PaintCost
public interface PaintCost
{
int getCost(int area);
}
// Derived class
class Rectangle : Shape, PaintCost
{
public int getArea()
{
return (width * height);
}
public int getCost(int area)
{
return area * 70;
}
}
class RectangleTester
{
static void Main(string[] args)
{
Rectangle Rect = new Rectangle();
int area;
Rect.setWidth(5);
Rect.setHeight(7);
area = Rect.getArea();
// Print the area of the object.
Console.WriteLine("Total area:
{0}", Rect.getArea());
Console.WriteLine("Total paint
cost: ${0}" , Rect.getCost(area));
Console.ReadKey();
}
}
}
2.3) What are abstract classes ?
Following are features of a abstract class :-
√ You can not create a object of abstract class204 √ Abstract class is designed to act
as a base class (to be inherited by other classes). Abstract class is a design
concept in program development and provides a base upon which other classes are
built.
√ Abstract
classes are similar to interfaces. After declaring an abstract class, it cannot
be instantiated on its own, it must be inherited.
√ In VB.NET abstract classes are created using
“MustInherit” keyword.In C# we have “Abstract” keyword.
√ Abstract
classes can have implementation or pure abstract methods which should be
implemented in the child class.
2.4) What is a Interface ?
Interface is a contract that defines the signature of
the functionality. So if a class is implementing a interface it says to the
outer world, that it provides specific behavior. Example if a class is
implementing Idisposable interface that means it has a functionality to release
unmanaged resources. Now external objects using this class know that it has
contract by which it can dispose unused unmanaged objects.
√ Single Class
can implement multiple interfaces.
√ If a class
implements a interface then it has to provide implementation to all its
methods.
What is difference between abstract classes and interfaces?
Following are the differences between abstract and
interfaces :-
√ Abstract classes can have concrete methods while
interfaces have no methods implemented.
√ Interfaces do not come in inheriting chain, while
abstract classes come in inheritance.
2.5) What is a delegate ?
Delegate
is a class that can hold a reference to a method or a function. Delegate class
has a signature and it can only reference those methods whose signature is
compliant with the class. Delegates are type-safe functions pointers or
callbacks.
2.6) What are events ?
As compared to delegates events works with source and
listener methodology. So listeners who are interested in receiving some events
they subscribe to the source. Once this subscription is done the source raises
events to its entire listener when needed. One source can have multiple
listeners.
2.7) What is shadowing ?
When
two elements in a program have same name, one of them can hide and shadow the
other one. So in such cases the element which shadowed the main element is
referenced.
2.8)What is the difference between Shadowing and Overriding ?
Following are the differences between shadowing and
overriding :-
√ Overriding redefines only the implementation while
shadowing redefines the whole element.
√ In overriding derived classes can refer the parent
class element by using “ME” keyword, but in shadowing you can access it by
“MYBASE”.
(I)
What is the difference between delegate and events?
√ Actually
events use delegates in bottom. But they add an extra layer on the delegates,
thus forming the publisher and subscriber model.
√ As delegates are function to pointers they can move across any
clients. So any of the clients can add or remove events, which can be pretty
confusing. But events give the extra protection by adding the layer and making
it a publisher and subscriber model. Just imagine one of your clients
doing this c.XyzCallback = null This
will reset all your delegates to nothing and you have to keep searching where
the error is.
2.9) If
we inherit a class do the private variables also get inherited ? Yes,
the variables are inherited but can not be accessed directly by the class
interface.
2.10) What are the different accessibility levels
defined in .NET ?
Following are the five levels of access modifiers :-
√ Private : Only members of class have access.
√ Protected :-All members in current class and in
derived classes can access the variables.
√ Friend (internal in C#) :- Only members in current
project have access to the elements.
√ Protected friend (protected internal in C#) :- All
members in current project and all members in derived class can access the
variables.
√ Public :- All
members have access in all classes and projects.
(I)
Can you prevent a class from overriding ? If
you define a class as “Sealed” in C# and “NotInheritable” in VB.NET you can not
inherit the class any further.
2.11) Do interface have accessibility modifier?
All
elements in Interface should be public. So by default all interface elements
are public by default.
(A)
What are similarities between Class and structure ? Following
are the similarities between classes and structures :-
√ Both can have constructors, methods, properties, fields,
constants, enumerations, events, and event handlers.
√ Structures and classes can implement interface.
√ Both of them can have constructors with and without parameter.
√ Both can have delegates and events.
(A) What is the difference
between Class and structure’s ?
Following are the key differences between them :-
√ Structure are value types and classes are reference types. So
structures use stack and classes use heap.
√ Structures members can not be declared as protected, but class
members can be. You can not do inheritance in structures.
√ Structures do not
require constructors while classes require.
√ Objects created from
classes are terminated using Garbage collector. Structures are not destroyed
using GC.
What does virtual keyword mean ?
They are that method and property can be overridden.
2.12) What are shared (VB.NET)/Static(C#) variables?
Shared (VB.NET) are Same as static in C# and most other
languages(java). It means that every object in the class uses the same copy of
the variablle, property or method. When used with a method as it is static you
don't need an object instance.
MyClass.DoSomething()
rather than
MuClass oObject =new MyClass()
oObject.DoSomething()
2.13) What is Dispose method in .NET ?
.NET provides “Finalize” method in which we can clean
up our resources. But relying on this is not always good so the best is to
implement “Idisposable” interface and implement the “Dispose” method where you
can put your clean up routines.
What is the use of
“OverRides” and “Overridable” keywords ? Overridable is
used in parent class to indicate that a method can be overridden. Overrides is
used in the child class to indicate that you are overriding a method
2.14) Where are all .NET Collection classes located ?
System.Collection namespace has
all the collection classes available in .NET.
What is ArrayList ? Array
is whose size can increase and decrease dynamically. Array list can hold item
of different types. As Array list can increase and decrease size dynamically
you do not have to use the REDIM keyword. You can access any item in array using
the INDEX value of the array position.
What’s a HashTable ? Twist :-
What’s difference between HashTable and ArrayList ? You
can access array using INDEX value of array, but how many times you know the
real value of index. Hashtable provides way of accessing the index using a user
identified KEY value, thus removing the INDEX problem.
What are queues and
stacks ? Queue is for first-in, first-out (FIFO) structures.
Stack is for last-in, first-out (LIFO) structures.
What is ENUM ? It’s
used to define constants.
What is nested Classes ? Nested
classes are classes within classes. In sample below “ClsNested” class has a
“ChildNested” class nested inside it. Public Class ClsNested Public Class ChildNested Public
Sub ShowMessage() MessageBox.Show(“Hi this is nested class”) End Sub End Class End Class This
is the way we can instantiate the nested class and make the method call. Dim pobjChildNested
As New ClsNested.ChildNested()
pobjChildNested.ShowMessage()217 Note:-In CD the above sample is provided in
“WindowsNestedClasses”.
What is Operator Overloading in .NET? It
provides a way to define and use operators such as +, -, and / for user-defined
classes or structs. It allows us to define/redefine the way operators work with
our classes and structs. This allows programmers to make their custom types
look and feel like simple types such as int and string. VB.NET till now does
not support operator overloading. Operator overloading is done by using the
“Operator” keyword. Note:- Operator overloading is supported in
VB.NET 2005
2.15) Why is it preferred to not use finalize for
clean up?
Problem with finalize is that garbage collection has to
make two rounds in order to remove objects which have finalize methods. Below
figure will make things clear regarding the two rounds of garbage collection
rounds performed for the objects having finalized methods. In this scenario
there are three objects Object1, Object2 and Object3. Object2 has the finalize
method overridden and remaining objects do not have the finalize method
overridden. Now when garbage collector runs for the first time it searches for
objects whose memory has to free. He can see three objects but only cleans the
memory for Object1 and Object3. Object2 it pushes to the finalization queue.
Now garbage collector runs for the second time. He see’s there are no objects
to be released and then checks for the finalization queue and at this moment it
clears object2 from the memory. So if you notice that object2 was released from
memory in the second round and not first. That’s why the best practice is not
to write clean up Non.NET resources in Finalize method rather use the DISPOSE.
How can we suppress a finalize method?
GC.SuppressFinalize
()
2.16) What is the use of DISPOSE method?
Dispose
method belongs to IDisposable interface. We had seen in the previous section
how bad it can be to override the finalize method for writing the cleaning of
unmanaged resources. So if any object wants to release its unmanaged code best
is to implement220 IDisposable and override the
Dispose method of IDisposable interface. Now once your class has exposed the
Dispose method it’s the responsibility of the client to call the Dispose method
to do the cleanup.
(A)How do I force the Dispose method to be called automatically,
as clients can forget to call Dispose method?
Note :- I admire this question.
Call
the Dispose method in Finalize method and in Dispose method suppress the
finalize method using GC.SuppressFinalize. Below is the sample code of the pattern.
This is the best way we do clean our unallocated resources and yes not to
forget we do not get the hit of running the Garbage collector twice. Note:- It
will suppress the finalize method thus avoiding the two trip.
Public Class ClsTesting
Implements IDisposable
Public Overloads Sub Dispose()
Implements IDisposable.Dispose
' write ytour clean up code here
GC.SuppressFinalize(Me)
End Sub
Protected Overrides Sub Finalize()
Dispose()
End Sub
End Class
2.17) In what instances you will declare a
constructor to be private?
When
we create a private constructor, we can not create object of the class directly
from a client. So you will use private constructors when you do not want
instances of the class to be created by any external client. Example UTILITY
functions in project will have no221 instance and be used with out
creating instance, as creating instances of the class would be waste of memory.
Can we have different access modifiers on get/set methods of a
property ?
No we can not have different modifiers same property.
The access modifier on a property applies to both its get and set accessors.
(I)If we write a goto or a return statement in try and catch
block will the finally block execute ?
The code in then finally always run even if there are
statements like goto or a return statements.
What is Indexer ?
An
indexer is a member that enables an object to be indexed in the same way as an
array.
Can we have static indexer in C# ? No.
In a program there are multiple catch blocks so can it happen
that two catch blocks are executed ?
No, once the proper catch section is executed the
control goes finally to block. So there will not be any scenarios in which
multiple catch blocks will be executed.
What is the difference
between System.String and System.StringBuilder classes? System.String
is immutable; System.StringBuilder can have mutable string where a variety of
operations can be performed.
So friends this is all for First topic OOPS(DID I DROP SOMETHING)....
Tune IN
TO GET ON OTHERS TOPICS
2..NET
Interoperability
3.THREADING
4.Remoting
and Webservices
5. OOPS(DID
I DROP SOMETHING)....
ETC.......................................................................THANKS
FOR YOUR patience.........
No comments :
Post a Comment