> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-java/interfeisy-markery.md).

# Интерфейсы-маркеры

Интерфейсы-маркеры (Marker Interfaces) - это интерфейсы в Java, которые не содержат ни одного метода. Их единственное назначение - обозначить классы, которые реализуют определенный маркерный интерфейс. Обычно они используются для предоставления метаинформации о классах, обозначая их для выполнения определенного действия или имеющих определенное свойство.

1. **Serializable**:

   ```java
   import java.io.Serializable;

   public class MyClass implements Serializable {
       // Код класса
   }
   ```

   Интерфейс `Serializable` используется для указания того, что класс может быть сериализован (преобразован в последовательность байтов) для сохранения его состояния или передачи по сети.
2. **Cloneable**:

   ```java
   public class MyClass implements Cloneable {
       // Код класса
   }
   ```

   Интерфейс `Cloneable` указывает, что объекты класса могут быть клонированы с использованием метода `clone()`. Однако, для правильной работы клонирования, класс также должен переопределить метод `clone()`.
3. **Remote** (устаревший):

   ```java
   import java.rmi.Remote;

   public interface MyRemoteInterface extends Remote {
       // Код интерфейса
   }
   ```

   Интерфейс `Remote` указывает, что класс является удаленным (Remote) объектом, который может быть использован в распределенных приложениях, использующих технологию Java RMI (Remote Method Invocation).
