---
title: "Subir campo"
type: "refactoring-technique"
slug: "pull-up-field"
url: "http://localhost:3000/es/pull-up-field.md"
category: "Dealing with Generalization"
description: "Problema: Dos clases tienen el mismo campo. Solución: Elimina el campo de las subclases y muévelo a la superclase."
---
# Subir campo

> Problema: Dos clases tienen el mismo campo. Solución: Elimina el campo de las subclases y muévelo a la superclase.

## Problem

Dos clases tienen el mismo campo.

## Solution

Elimina el campo de las subclases y muévelo a la superclase.

## Why Refactor

Las subclases crecieron y evolucionaron por separado, lo que provocó la aparición de campos y métodos idénticos (o casi idénticos).

## Benefits

* Elimina la duplicación de campos en las subclases.
* Facilita la posterior reubicación de métodos duplicados, si existen, desde las subclases hacia una superclase.

## How to Refactor

1. Asegúrate de que los campos se usan para las mismas necesidades en las subclases.
2. Si los campos tienen nombres diferentes, dales el mismo nombre y reemplaza todas las referencias a los campos en el código existente.
3. Crea un campo con el mismo nombre en la superclase. Ten en cuenta que si los campos eran privados, el campo de la superclase debería ser protegido.
4. Elimina los campos de las subclases.
5. Quizá quieras considerar el uso de [Autoencapsular campo](/es/self-encapsulate-field) para el nuevo campo, con el fin de ocultarlo tras métodos de acceso.
## Relations

**Similar techniques**

- [Subir Método](/es/pull-up-method.md)

**Opposite refactorings**

- [Bajar campo](/es/push-down-field.md)

**Eliminates smells**

- [Código Duplicado](/es/smells/duplicate-code.md)

