2016-07-27 2 views
2

В Java и C# класс Object является неявным родителем для всех классов, которые определены. Есть что-то подобное в go?Есть ли у нас что-то такое же, что и Java и объект C# в Голанге?

+6

Go даже не имеют родителей, не говоря уже общий предок. – user2357112

+1

В классе нет занятий. Какую конкретную проблему вы пытаетесь решить? –

+0

В java есть некоторая реализация по умолчанию для таких методов, как 'getHashCode' или' toString'. Что с ними происходит в голанге? – mahdix

ответ

5

В Go нет наследования.
Я думаю, что вы ищете interface: Go: What's the meaning of interface{}?

, но если вам нужно что-то похожее на объект (не класс), вы можете использовать interface:

Переменные типа интерфейса также имеют различные динамический тип, который является конкретным типом значения, присвоенного переменной во время выполнения (если только значение не указано, идентификатор nil, который не имеет типа ). Динамический тип может меняться во время выполнения, но значения, хранящиеся в переменных интерфейса , всегда присваиваются статическому типу переменной .

var x interface{} // x is nil and has static type interface{} 
var v *T   // v has value nil, static type *T 
x = 42    // x has value 42 and dynamic type int 
x = v    // x has value (*T)(nil) and dynamic type *T 

и:

Типы интерфейсов:

тип интерфейса определяет метод набора, называемый его интерфейс. A переменная типа интерфейса может хранить значение любого типа с помощью метода , который является любым надмножеством интерфейса. Такой тип называется реализовать интерфейс. Значение неинициализированной переменной типа интерфейса равно нулю.

см: типы http://golang.org/doc/go_spec.html

+2

Это неточно сказать, что go не является языком ООП. Он имеет объекты (любого пользовательского типа) и методы, а не наследование. Но наследование не является определяющим свойством языков OO - см. Https://en.wikipedia.org/wiki/Object-oriented_programming –

+2

ACK. Я всегда говорю, что Go объектно-ориентированный, но не основанный на классе. – svenwltr

Смежные вопросы