EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Sealed Class in C#

By Priya PedamkarPriya Pedamkar

Home » Software Development » Software Development Tutorials » C# Tutorial » Sealed Class in C#

sealed class in C#

What is a Sealed Class in C#?

A Sealed Class is a class that does not allow inheritance, which means the Sealed Class will restrict users to inherit a class. A Sealed Class defined by using a sealed keyword, that keyword notifies the compiler like the defined class is sealed so that it cannot be extended and there is no chance of inheriting a specific class. Sealed Class restricts a class derived from a Sealed Class. The main purpose of the sealed class is to stop inheriting the specific class from other classes. In C#, for our code security, we go for a sealed class, in which we can secure overriding particular methods or properties depend on our conditions. A Sealed Class is a class where we cannot derive or create a new class. In other words, the Sealed Class can’t be inherited by other classes and by using a sealed modifier we can also define a class that is declared called Sealed Class.

Syntax

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

sealed class _className
{
//data members
//methods
}

Code:

sealed class Demo1 {}
class Demo2 : Demo1{} //invalid

To create any class as a sealed class we must use the keyword sealed.

How does Sealed Class Work in C#?

In general, while creating a class with the help of inheritance we inheriting all the methods and properties in any of the classes. By using sealed class, we can restrict access to the classes and its members with the help of a sealed keyword and we can also avoid inheriting the defined classes from other classes. In C#, a sealed class is a class that cannot be inherited by another class but it can be instantiated. Sealed Class often used for security purposes from preventing the derived class from unwanted users. A Sealed Class is for the most part designed to boundary line the extensibility of the classes.

There are several points while working with Sealed Class, they are:

  • A sealed class is entirely different from an abstract class.
  • Abstract methods cannot be used in a sealed class.
  • In the inheritance hierarchy, it must be the bottom-most class.
  • Sealed class purposely used to avoid inheritance.
  • The sealed keyword used with methods, classes, properties, and instance.

Let’s see the Working Process of Sealed Class:

Code:

using System;
public class DemoClass
{
public static void Main (string[] args)
{
SealedDemo _sealedObject=new SealedDemo();
int result=_sealedObject.Addition(5,5);
Console.WriteLine("Total Value="+result.ToString());
}
} //sealedClass starts here
sealed class SealedDemo
{
public int Addition(int x, int y)
{
return x+y;
}
}

Output:

sealed class

When the class is defined as sealed, then that class cannot be inherited and also that Sealed Class can’t be used as the base class. Sealed Class is mainly used for the purpose of restricting the inheritance aspect of OOP.

Popular Course in this category
C# Training Program (6 Courses, 17 Projects)6 Online Courses | 17 Hands-on Project | 89+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.6 (8,847 ratings)
Course Price

View Course

Related Courses
ASP.NET Training (8 Courses, 19 Projects).NET Training Program (4 Courses, 19 Projects)

Sealed Methods in C#

Sealed methods are defined as that the method is a parent class and that method cannot be overridden under child class. When the method is declared virtual in a class any of the child classes can override a method:

Example #1

Code:

using System;
public class Sample_Employee
{
protected int Emp_id, Emp_age;
protected string Emp_name, Emp_address;
public virtual void GetEmployeeDetails()
{
Console.WriteLine("EMPLOYEE DETAILS");
Console.WriteLine("EMPLOYEE ID");
Emp_id = int.Parse(Console.ReadLine());
Console.WriteLine("EMPLOYEE NAME");
Emp_name = Console.ReadLine();
Console.WriteLine("EMPLOYEE ADDRESS");
Emp_address = Console.ReadLine();
Console.WriteLine("EMPLOYEE AGE");
Emp_age = int.Parse(Console.ReadLine());
}
public virtual void DisplayEmployeeDetails()
{
Console.WriteLine("\nEMPLOEE DETAILS:");
Console.WriteLine("EMPLOYEE ID : " + Emp_id);
Console.WriteLine("EMPLOYEE NAME : " + Emp_name);
Console.WriteLine("EMPLOYEE ADDRESS :" + Emp_address);
Console.WriteLine("EMPLOYEE AGE : " + Emp_age);
}
}
public sealed class Emp_Manager : Sample_Employee
{
double Bonus, CA;
public override void GetEmployeeDetails()
{
Console.WriteLine("ENTER MANAGER DETAILS:");
Console.WriteLine("ENTER THE ID");
Emp_id = int.Parse(Console.ReadLine());
Console.WriteLine("ENTER THE NAME");
Emp_name = Console.ReadLine();
Console.WriteLine("ENTER THE BONUS");
Bonus = double.Parse(Console.ReadLine());
Console.WriteLine("ENTER THE CA");
CA = Convert.ToDouble(Console.ReadLine());
}
public override void DisplayEmployeeDetails()
{
Console.WriteLine("MANAGER DETAILS");
Console.WriteLine("EMPLOYEE ID: " + Emp_id);
Console.WriteLine("EMPLOYEE NAME: " + Emp_name);
Console.WriteLine("MANAGER BONUS: " + Bonus);
Console.WriteLine("MANAGER CA : " + CA);
}
}
class Program
{
static void Main(string[] args)
{
Emp_Manager m1 = new Emp_Manager ();
m1.GetEmployeeDetails();
m1.DisplayEmployeeDetails();
Console.ReadKey();
}
}

Output:

sealed class2

We can use a sealed modifier on a property or method which overrides the virtual method in the base class, which enables us to allow classes to derive from class and secure developers who using classes from overriding particular virtual properties or methods. There are a few points which we must define sealed class are:

  • We never want to override all properties or methods of a class in sub-classes
  • There is no need to expand our class functionalities.

Example #2

The main purpose of using a sealed class is to secure the inheritance of a class; we not required any classes to enlarge the functionality of a class. Let’s see the sample program for the sealed class:

Code:

using System;
using System.Text;
namespace test_SealedClass
{
public class SampleProgram1
{
public sealed class TestBaseClass
{
public static void TestDisplay()
{
Console.WriteLine("Here the SealedClass cannot be inherited");
}
}
public class TestDerived : TestBaseClass
{
// here Derived class cannot be inherited because it's a sealed class
}
static void Main(string[] args)
{
TestBaseClass _object = new TestBaseClass();
_object.TestDisplay();
Console.ReadLine();
}
}
}

When you attempt to derive a class from a sealed class compiler throws a fault error.” TestDerived : cannot derive from sealed type TestBaseClass”.

Advantages in Sealed Class

Let’s see the following important points we need to consider about the sealed keyword in c# language:

  • For security purposes, a class restricts inheritance if a class is declared as a sealed class.
  • For the class and method, C# applies restrictions when using sealed keywords.
  • The local variable is not been sealed in C#
  • It’s always applicable when using override for the sealed keyword on property or method.
  • A sealed modifier avoids a class being inherited.

Conclusion

This article will give you a better view of sealed class and sealed method and explained the Sealed Class and Sealed Methods in C# with few examples. Hope this article helps you with your requirement.

Recommended Articles

This is a guide to Sealed Class in C#. Here we discuss how sealed class work in c#, and methods in the sealed class with advantages. You can also go through our other related articles to learn more –

  1. C# Jagged Arrays
  2. Palindrome in C#
  3. Inheritance in C#
  4. Break Statement in Java

C# Training Program (6 Courses, 17 Projects)

6 Online Courses

17 Hands-on Project

89+ Hours

Verifiable Certificate of Completion

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C sharp Tutorial
  • Advanced
    • Inheritance in C#
    • Exception Handling in C#
    • Types of Exception in C#
    • C# FileNotFoundException
    • C# NullReferenceException
    • C# OutOfMemoryException
    • C# StackOverflowException
    • Custom Exception in C#
    • What is Multithreading in C#
    • C# finally
    • C# System.IO
    • What is StringBuilder in C#
    • DataReader C#
    • BinaryWriter in C#
    • C# BinaryReader
    • TextWriter in C#
    • TextReader in C#
    • C# StringReader
    • C# StringWriter
    • C# StreamReader
    • C# StreamWriter
    • C# FileInfo
    • What is Design Pattern in C#?
    • Multithreading in C#
    • Sorting in C#
    • Bubble Sort in C#
    • C# SortedList
    • C# SortedSet
    • C# SortedDictionary
    • Abstract Class in C#
    • Access Modifiers in C#
    • C# Generics
    • Deserialization in C#
    • C# Thread
    • C# Thread Join
    • C# Thread Sleep
    • C# Thread Synchronization
    • C# Class
    • Sealed in C#
    • Sealed Class in C#
    • Polymorphism in C#
    • C# Call By Reference
    • Virtual Keyword in C# 
    • Yield Keyword in C#
    • Regular Expression in C#
    • C# Lambda Expression
    • C# Predicate
    • Convert Object to JSON C#
    • Checkbox in C#
    • C# MessageBox
    • Collections in C#
    • List in C#
    • C# LinkedList
    • Listbox in C#
    • Protected in C#
    • C# EventHandler
    • Private in C#
    • this Keyword in C#
    • Static Keyword in C#
    • C# Out Parameter
    • Assert in C#
    • C# Delegates
    • C# Interface
    • Generics in C#
    • Timer in C#
    • C# Serialization
    • Metadata in C#
    • C# Stack
    • C# Using Static
    • Queue in C#
    • C# File.Exists
    • C# Tuples
    • C# Create JSON Object
    • Partial in C#
    • C# readonly
    • C# Action Delegate
    • C# Await Async
    • C# Dictionary
    • IEnumerable C#
    • C# Data Grid View
    • C# Dynamic
    • Web Services in C#
    • C# Pattern Matching
    • C# Extension Methods
    • C# XmlSerializer
  • Basic
    • Uses Of C#
    • C# Versions
    • C# Data Types
    • Variables in C#
    • Namespaces in C#
    • C# Compilers
    • C# Keywords
    • Iterators in C#
    • Objects in C#
    • C# Object Dispose
    • C# object to XML
    • C# check object type
    • C# Object Serialization
    • Pointers in C#
    • C# Literals
    • C# Commands
    • C# Custom Attribute
    • Type Casting in C#
    • String vs String C#
    • C# Struct vs Class
  • Operators
    • Logical Operators in C#
    • Conditional Operators in C#
    • Bitwise Operators in C#
    • C# OR Operator
    • C# Ternary Operators
    • Operator Precedence in C#
  • Control Statement
    • C# if Statement
    • Else If in C#
    • Continue in C#
    • Break in C#
    • Switch Statement in C#
    • Goto Statement in C#
  • Loops
    • C# For Loop
    • C# While Loop
    • C# do-while loop
    • C# foreach Loop
  • Arrays
    • Arrays in C#
    • 2D Arrays in C#
    • C# Jagged Arrays
    • String Array in C#
    • C# Multidimensional Arrays
  • Constructor and Destructor
    • Constructor in C#
    • Copy Constructor in C#
    • Static Constructor in C#
    • Destructor in C#
  • overloading and overrideing
    • Overloading and Overriding in C#
    • Overloading in C#
    • Overriding in C#
    • Method Overloading in C#
    • Method Overriding in C#
    • Operator Overloading in C#
  • Functions
    • C# Functions
    • C# String Functions
    • Math Functions in C#
    • Recursive Function in C#
    • C# Anonymous Functions
    • C# Local Functions
    • Enum in C#
    • Trim() in C#
    • clone() in C#
    • C# random
    • C# String Format()
    • C# String Interpolation
    • C# StartsWith()
    • C# String IndexOf()
    • DateTime in C#
    • C# Nullable
    • C# nameof
    • C# checked
    • C# String PadLeft
    • Convert String to Double in C#
    • Convert int to String C#
    • String to Date C#
    • C# intern()
    • C# Stopwatch
    • C# DirectoryInfo
    • C# Compare()
    • C# Base
    • C# SOAP
    • Lock in C#
  • Programs
    • Patterns in C#
    • Swapping in C#
    • Palindrome in C#
    • Factorial in C#
    • Fibonacci Series in C#
    • Random Number Generator in C#
    • Prime Numbers in C#
    • Armstrong Number in C#
    • Reverse String in C#
  • Interview questions
    • C# Interview Questions and Answers
    • C# OOP Interview Questions
    • C# Design Pattern Interview Questions

Related Courses

C# Certification Training

ASP.NET Course

.NET Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C# Training Program (6 Courses, 17 Projects) Learn More