Шта је затворена класа у Ц #?

Запечаћена класа је класа која не дозвољава наследство, што значи да ће затворена класа ограничити кориснике да наследе класу. Запечаћена класа дефинисана употребом запечаћене кључне речи, та кључна реч обавештава преводилац као што је дефинисана класа запечаћена тако да се не може проширити и нема шансе да наследи одређену класу. Запечаћена класа ограничава класу изведену из класе Сеалед. Главна сврха запечаћене класе је зауставити насљеђивање одређене класе од других класа. У Ц #, за нашу сигурност кода, тражимо запечаћену класу у којој можемо обезбедити превладавање одређених метода или својстава зависно од наших услова.

Сеалед Цласс је класа из које не можемо извући или створити нову класу. Другим речима, запечаћена класа не може бити наслеђена од стране других класа и употребом запечаћеног модификатора можемо такође дефинисати класу која се декларише под називом Сеалед Цласс.

Синтакса

sealed class _className
(
//data members
//methods
)

Шифра:

sealed class Demo1 ()
class Demo2 : Demo1() //invalid

Да бисмо створили било коју класу као запечаћену класу, морамо користити кључну реч запечаћена.

Како затворена класа ради у Ц #?

Генерално, док стварамо класу помоћу насљеђивања насљеђујемо све методе и својства у било којој од класа. Коришћењем запечаћене класе можемо ограничити приступ класама и њеним члановима уз помоћ запечаћене кључне речи, а такође можемо избећи наслеђивање дефинисаних класа од осталих класа. У Ц #, запечаћена класа је класа која не може наслиједити друга класа, али се може инстанцирати. Запечаћена класа која се често користи у сигурносне сврхе ради спречавања изведене класе од нежељених корисника. Запечаћена класа је већим делом дизајнирана да граничи линију проширивости класа. Током рада са Сеалед Цласс постоји неколико тачака:

  • Запечаћена класа се у потпуности разликује од апстрактне класе.
  • Апстрактне методе се не могу користити у затвореној класи.
  • У хијерархији наслеђивања она мора бити најнижа класа.
  • Запечаћена класа намерно се користи да се избегне наследство.
  • Запечаћена кључна реч која се користи за методе, класе, својства и инстанцу.

Погледајмо радни процес запечаћене класе:

Шифра:

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;
)
)

Излаз:

Кад је класа дефинирана као запечаћена, тада се та класа не може наслиједити и такођер не може се користити као основна класа. Заптивена класа се углавном користи у сврху ограничавања наследног аспекта ООП-а.

Заптивене методе у Ц #

Запечаћене методе су дефинисане као да је метода родитељска класа и та метода се не може прегласити под надређеном класом. Када је метода класификована виртуалном у класи, било која од дечијих класа може надјачати метод:

Пример # 1

Шифра:

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();
)
)

Излаз:

Можемо користити запечаћени модификатор на својству или методи која надјачава виртуалну методу у основној класи, што нам омогућава да класе потјечу од класе и осигурају програмере који користе класе из надјачавања одређених виртуалних својстава или метода. Постоји неколико тачака које морамо дефинисати запечаћена класа:

  • Никада не желимо да надјачамо сва својства или методе класе у подкласама
  • Нема потребе за проширењем функционалности наше класе.

Пример бр. 2

Главна сврха употребе запечаћене класе је осигурање насљеђивања класе; нису нам потребне никакве класе да бисмо повећали функционалност класе. Погледајмо пример програма за затворене класе:

Шифра:

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();
)
)
)

Када покушавате да добијете класу из запечаћеног компајлера класе, грешка је грешка. "ТестДеривед: не може произаћи из запечаћеног типа ТестБасеЦласс".

Предности класе Сеалед

Погледајмо следеће важне тачке које морамо да размотримо око запечаћене кључне речи на језику # #:

  • Ради сигурности, класа ограничава насљеђивање ако је класа декларирана као запечаћена класа.
  • За класу и методу, Ц # примењује ограничења када користите запечаћене кључне речи.
  • Локална варијабла није запечаћена у Ц #
  • Увек је применљив када користите прегласавање запечаћене кључне речи на својству или методи.
  • Заптивени модификатор избегава наслеђивање класе.

Закључак

Овај чланак ће вам дати бољи приказ заптивене класе и методе запечаћене и објаснио методе запечаћене класе и запечаћене методе у Ц # са неколико примера. Надам се да вам овај чланак помаже у захтевима.

Препоручени чланци

Ово је водич за запечаћену класу у Ц #. Овде смо расправљали о начину рада затворене класе у ц # и методама у класи запечаћених са предностима. Можете и да прођете кроз остале сродне чланке да бисте сазнали више -

  1. Ц # назубљени низови
  2. Палиндроме у Ц #
  3. Наслеђивање у Ц #
  4. Изјава о прекиду у Јави
  5. Изјава о прекиду у ЈаваСцрипт-у
  6. Палиндроме у ЈаваСцрипту
  7. Тхров вс Тхров | Топ 5 разлика које би требало да знате
  8. Изјава о прекиду у Питхон-у са примерима

Категорија: