Hi all. I have following simple questions:

<1> What is the difference between abstract class and an interface?
I know the following-
- Fields/member vaiables are allowed in abstract class, where as they are not allowed in an interface.
- The class implementing an interface has to implement all the methods/properties/delegates in the interface, but a class inheriting an abstract class need not implement all the methods/properties/delegates in the base class which is abstract class. But I am not sure if the user has to simply ignore the methods or he has to declare them as abstract in the derived class if he is not going to implement that method?
- No constructors, destructors, garbage collection in an interface. Please comment on this one...

<2> In an enterprise development, which one comes first - an abstract class or an interface? This was an interview question.

<3> What is happens when the keyword abstract is used to declare and implement a method? What happens when a keyword sealed is applied to a method?

<4> Can we have virtual/override/new keywords attached to a contructor in C#? If yes, then answer the following:
Code:
class A
{
public virtual A(){ }
}

class B : A
{
public override B(){ }
}

class C : B
{
--------------- C(){ } // Mention the keyword(s) that will come here
                               // if the base class c'tor is to be invoked and otherwise
}
<5> What is the analogous of C# static keyword in VB.NET?

<6> Is there a C# equivalent for keywords My, AddressOf, With in C#? If not then how are the tasks done by them in VB.NET performed in C#?

<7> Which of the ways is cost effective? Boxing or Unboxing?

Although I have a rough idea of all the Qs, I am not 100% confident about them. So please give all your inputs...

Thankyou,
Bhushan.