anil_bang0011 Ответов: 6

разница между статическим и запечатанным классом в .NET


Привет дорогой друг ,

У меня есть один вопрос

я изучал оба класса статический или запечатанный класс

1)оба класса не могут быть наследованы
2)мы не можем создать объект
3) мы непосредственно используем по имени

но в чем разница между этими двумя классами

я думаю, что все это ответит как более свежий уровень .
но я хочу получить ответ как опытный человек


Заранее спасибо
Анил Кумар

6 Ответов

Рейтинг:
50

OriginalGriff

Они совершенно разные.

Один sealed класс не может быть унаследован: это единственное отличие от любого другого типа класса.

Один static класс не может быть создан. Вы не можете, в любое время писать new MyStaticClass() без жалоб компилятора. У него никогда не бывает this ссылка, а также поля, свойства и методы могут быть доступны только через имя класса: MyStaticClass.MyMethod() Кроме того, вы не можете быть производным от статического класса, а статический класс не может быть производным от любого другого класса, кроме object


[no name]

мои 5!

Рейтинг:
44

Simon Bang Terkildsen

Статический класс может содержать только статические методы, свойства и поля, и то, что вы написали в 1), 2) и 3) применяется.
Запечатанный класс-это обычный класс, экземпляр которого можно создать, но нельзя наследовать от него. то, что вы написали в 2) и 3), не относится к запечатанным классам, но запечатанный класс может иметь статические методы, и поэтому вы можете утверждать, что 3) применимо.

Для получения более глубокого представления см. Статические классы и члены статических классов[^], герметичный (Справочник по c# )[^] и Абстрактные и запечатанные классы и члены класса[^]


[no name]

мои 5!

Simon Bang Terkildsen

Спасибо, Раис

Рейтинг:
34

sachin10d

Sealed classes: 
1)Can create instances, but cannot inherit
2)Can contain static as well as nonstatic members.

Static classes:
1)Can neither create their instances, nor inherit them
2)Can have static members only.


[no name]

мои 5!

Shambhoo kumar

огромная разница...большое спасибо..
мои 5!
:)

Рейтинг:
20

Morgs Morgan

1. Запечатанный класс не может быть унаследован от и статические и нестатические члены или методы. Содержит открытый конструктор.
2. статический класс не может быть унаследован и содержит только статические методы и свойства класса. Содержит частный конструктор.


Preethi PS

Почему статический класс не может быть унаследован?

Рейтинг:
2

Member 13491331

но некоторые моменты этой темы понятны:-
1) как статические, так и seales не могут быть унаследованы, но мы можем наследовать статический класс другими
статический класс, где as sealed не может быть никогда передан по наследству.
2). мы не можем создать объект статического класса там, где мы можем создать объект запечатанного класса.
3). мы не можем использовать запечатанный класс в качестве базового класса, где в качестве статического можно использовать в качестве базового класса.


CHill60

Эти этапы были это стало ясно 6 лет назад. Придерживайтесь ответов на новые вопросы, где ОП все еще нуждается в помощи

phil.o

"мы можем наследовать статический класс другим статическим классом"
"статика может быть использована в качестве базового класса"
Эти утверждения ложны.

Рейтинг:
1

member60

* Статический класс может содержать только статические члены (это просто контейнер для методов, которые логически не принадлежат экземпляру какого-либо стандартного класса)
* Абстрактный класс может содержать все обычные виды членов (статический, абстрактный, а также экземпляр)