Friday 3 February 2012

sealed classes in c#

Introduction

Here I will explain what are the sealed classes in c# and uses of sealed classes in c#.

Description:

In previous article I explained clearly about OOPS concepts now I will explain what is the use of sealed classes in c#. Generally if we create classes we can inherit the properties of that created class in any class without having any restrictions. In some situation we will get requirement like we don’t want to give permission for the users to derive the classes from it or don’t allow users to inherit the properties from particular class in that situations what we can do? 
For that purpose we have keyword called “Sealed” in OOPS. 
When we defined class with keyword “Sealed” then we don’t have a chance to derive that particular class and we don’t have permission to inherit the properties from that particular class.

Example to declare class as sealed 

sealed class Test
{
public int Number;
public string Name;
}
If the class declared with an access modifier, the Sealed keyword can appear after or before the public keyword. 

Example

Public sealed class Test
{
public int Number;
public string Name;
}

Here we can declare a class that is derived from another class can also be sealed. Check below example

Public sealed class Test
{
public int Number;
public string Name;
}

Public sealed class child1:Test
{
public string Name;
}









Example to use Sealed Keyword First create console application in C# and write the following code inProgram.cs file and test it once.
  
using System;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Irregular tri = new Irregular(42.73, 35.05);
tri.Describe("Irregular");
}
}
public abstract class Triangle
{
private double bs;
private double hgt;

public Triangle(double length , double height)

{
bs = length;
hgt = height;
}

public virtual double Area()
{
return bs * hgt / 2;
}

public void Describe(string type)
{
Console.WriteLine("Triangle - {0}", type);
Console.WriteLine("Base:   {0}", bs);
Console.WriteLine("Height: {0}", hgt);
Console.WriteLine("Area:   {0}", Area());
}
}

sealed public class Irregular : Triangle
{
public Irregular(double Base, double Height): base(Base, Height)
{
}
}
}








































Output of above sample will be like this














From above example we can easily say that sealed classes can’t inherit or acquire properties from parent class. 

Another Important information is if we create a static class, it becomes automatically sealed. This means that you cannot derive a class from a static class. So, the sealed and the static class have in common that both are sealed. The difference is that you can declared a variable of a sealed class to access its members but you use the name of a static class to access its members.

No comments:

Post a Comment