- C# Basics
- C# - Introduction
- C# - Install
- C# - Hello World
- C# - Syntax
- C# - Comments
- C# - Variables
- C# - Data Types
- C# - Operators
- C# - Strings
- C# - Conditions
- C# - Loops
- C# - Advanced
- C# - Methods
- C# - Classes
- C# - OOP
- C# - Files
- C# - Data Structures
- C# - Enums
- C# - Interface
- C# - Access Modifiers
- C# - Abstract Class
- C# - Concrete Class
- C# - Function Pointers
- C# - Events
- C# - Class Decorators
- C# - Design Patterns
- C# - LINQ
- C# - Type Conversion
- C# - Generics
- C# - DLLs
- C# - Reference Type
- C# - Scripts
- C# - Database
- C# - With SQL Server
- C# - With Oracle
- C# - Parameterization
- C# - With MySQL
C# - Abstract Class
In C#, an abstract class is a class that cannot be instantiated directly. It is designed to serve as a base class for other classes. Abstract classes are typically used when you have a base class that should provide common functionality, but some methods need to be defined in derived classes.
Key Features of Abstract Classes:
- Cannot be instantiated: You cannot create an instance of an abstract class directly.
- Can contain abstract methods: These methods have no implementation in the abstract class and must be implemented in any derived class.
- Can contain non-abstract methods: The abstract class can also include methods with full implementations that can be inherited by derived classes.
- Can contain properties, fields, and constructors: Like a regular class, abstract classes can have these members.
Syntax:
csharpabstract class Animal
{
public abstract void MakeSound(); // Abstract method
public void Sleep() // Non-abstract method
{
Console.WriteLine("Sleeping...");
}
}
Derived Class:
The class that derives from an abstract class must implement all its abstract methods.
csharpclass Dog : Animal
{
public override void MakeSound() // Implement abstract method
{
Console.WriteLine("Woof!");
}
}
class Cat : Animal
{
public override void MakeSound() // Implement abstract method
{
Console.WriteLine("Meow!");
}
}
Usage:
You can use the abstract class as a base for polymorphism:
csharpAnimal myDog = new Dog();
myDog.MakeSound(); // Output: Woof!
myDog.Sleep(); // Output: Sleeping...
Animal myCat = new Cat();
myCat.MakeSound(); // Output: Meow!
myCat.Sleep(); // Output: Sleeping...
Key Points:
- Abstract vs. Interface: Abstract classes allow you to define both methods with and without implementation, while interfaces only allow method declarations.
- Inheritance: A class can inherit only one abstract class but can implement multiple interfaces.