2015-07-20 2 views
0

this MSDN example В, класс явно наследует от Object:Нужно ли явно наследовать от объекта?

class Point: Object { 
    // ... 
} 

Явно унаследовав от Object когда-либо необходимой? То есть, это не эквивалентно следующему?

class Point: Object { 
    // ... 
} 
+0

класс 'точка {}' скомпилирован * точно так же * как 'класса точки: объект {}' или 'class Point: global :: System.Object {}'. (Можно предположить, что сумасшедший программист создаст свой собственный тип под названием Object.) – user2864740

+0

@stuartd, спасибо. Не знаю, как я этого не поймал. Проголосовал за закрытие. – kdbanman

+0

Я думаю, они просто хотят, чтобы вы знали, что он не наследуется от какого-то другого класса. – RadioSpace

ответ

1

Нет, это неявно унаследовано. Вот почему каждый класс в C# имеет .ToString() и .Equals().

https://msdn.microsoft.com/en-us/library/vstudio/system.object%28v=vs.100%29.aspx Класс объекта: «Это конечный базовый класс всех классов в .NET Framework, это корень иерархии типов».

Этот тип наследования, где все происходит из одного класса называется «единая система типа»

+0

Я принял ваш ответ. Спасибо. Если кто-то проходит мимо, [здесь] (http://blogs.msdn.com/b/ericlippert/archive/2009/08/06/not-everything-derives-from-object.aspx) являются исключениями из все-наследует правило 'Object'. (Типы указателей и типы интерфейсов нет.) – kdbanman