> For the complete documentation index, see [llms.txt](https://nim-ru-tutorial.gitbook.io/ibm-vala-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nim-ru-tutorial.gitbook.io/ibm-vala-guide/chast-2-obektno-orientirovannoe-programmirovanie-na-yazyke-vala-1/klassy-i-interfeisy.md).

# Классы и интерфейсы

Синтаксис определения класса, как ссылочного типа данных, типичен для объектно-ориентированных языков:

```csharp
class <имя_класса> : <имя_супер_класса>, <имя_интерфейса>
{
  ...
}
```

Интерфейс не позволяет напрямую создавать свои экземпляры – требуется реализация его абстрактных методов. Определение интерфейса:

```csharp
interface <имя_интерфейса> : <имя_супер_интерфейса>
{
  ...
}
```

## Пространства имён

Реализация концепции пространства имён практически не отличается от реализации в родственных языках, таких как C++ и C#.

```csharp
namespace NS_Name { ... }
```

определяет пространство имён NS\_Name. Внутри фигурных скобок может содержаться любой код за исключением директив using.

Пространства имён могут быть вложенными:

```csharp
namespace NS_Name1
{
  namespace NS_Name2
  {
    ...
  }
}
```

В этом случае префикс-квалификатор записывается как "NS\_Name1.NS\_Name2".
