NameSpace is the Logical group of types or we can say namespace is a container (e.g Class, Structures, Interfaces, Enumerations etc.).
Example: a) System.IO logically groups input output related features.
b) System.Data.SqlClient is the logical group of ado.net Connectivity with Sql server related features. In Object Oriented world, many times it is possible that programmers will use the same class name, Qualifying NameSpace with class name can avoid this collision.
A virtual method can be redefined. The virtual keyword designates a method that is overridden in derived classes.
A virtual method is created in the base class that can be overriden in the derived class.
The override modifier is needed for implementing polymorphic behaviors in derived classes. You can re-implement a virtual base method. This causes the base implementation to be ignored in favor of the override method.
Abstract classes, marked by the keyword abstract in the class definition, are typically used to define a base class in the hierarchy. What’s special about them, is that you can’t create an instance of them – if you try, you will get a compile error.
An abstract method has no implementation. Its implementation logic is provided instead by classes that derive from it. We use an abstract class to create a base template for derived classes.