diff --git a/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php b/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
index eab0b66..9b3c87a 100644
--- a/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
+++ b/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
@@ -16,49 +16,6 @@
 abstract class EntityDisplayBase extends ConfigEntityBase implements EntityDisplayBaseInterface {
 
   /**
-   * Unique ID for the config entity.
-   *
-   * @var string
-   */
-  public $id;
-
-  /**
-   * Unique UUID for the config entity.
-   *
-   * @var string
-   */
-  public $uuid;
-
-  /**
-   * Entity type to be displayed.
-   *
-   * @var string
-   */
-  public $targetEntityType;
-
-  /**
-   * Bundle to be displayed.
-   *
-   * @var string
-   */
-  public $bundle;
-
-  /**
-   * View or form mode to be displayed.
-   *
-   * @var string
-   */
-  public $mode;
-
-  /**
-   * Whether this display is enabled or not. If the entity (form) display
-   * is disabled, we'll fall back to the 'default' display.
-   *
-   * @var boolean
-   */
-  public $status;
-
-  /**
    * List of component display options, keyed by component name.
    *
    * @var array
@@ -66,14 +23,6 @@
   protected $content = array();
 
   /**
-   * The original view or form mode that was requested (case of view/form modes
-   * being configured to fall back to the 'default' display).
-   *
-   * @var string
-   */
-  public $originalMode;
-
-  /**
    * The plugin objects used for this display, keyed by field name.
    *
    * @var array
@@ -116,14 +65,14 @@ public function __construct(array $values, $entity_type) {
 
     parent::__construct($values, $entity_type);
 
-    $this->originalMode = $this->mode;
+    $this->setOriginalMode($this->getMode());
   }
 
   /**
    * {@inheritdoc}
    */
   public function id() {
-    return $this->targetEntityType . '.' . $this->bundle . '.' . $this->mode;
+    return $this->getTargetEntityType() . '.' . $this->bundle() . '.' . $this->getmode();
   }
 
   /**
@@ -133,8 +82,8 @@ public function save() {
     $return = parent::save();
 
     // Reset the render cache for the target entity type.
-    if (\Drupal::entityManager()->hasController($this->targetEntityType, 'render')) {
-      \Drupal::entityManager()->getRenderController($this->targetEntityType)->resetCache();
+    if (\Drupal::entityManager()->hasController($this->getTargetEntityType(), 'render')) {
+      \Drupal::entityManager()->getRenderController($this->getTargetEntityType())->resetCache();
     }
 
     return $return;
@@ -165,7 +114,7 @@ public function getExportProperties() {
    */
   public function createCopy($mode) {
     $display = $this->createDuplicate();
-    $display->mode = $display->originalMode = $mode;
+    $display->setOriginalMode($mode)->setMode($mode);
     return $display;
   }
 
@@ -188,7 +137,7 @@ public function getComponents() {
    */
   public function getComponent($name) {
     // We always store 'extra fields', whether they are visible or hidden.
-    $extra_fields = field_info_extra_fields($this->targetEntityType, $this->bundle, $this->displayContext);
+    $extra_fields = field_info_extra_fields($this->getTargetEntityType(), $this->bundle(), $this->displayContext);
     if (isset($extra_fields[$name])) {
       // If we have explicit settings, return an array or NULL depending on
       // visibility.
@@ -231,7 +180,7 @@ public function setComponent($name, array $options = array()) {
       $options['weight'] = isset($max) ? $max + 1 : 0;
     }
 
-    if ($instance = field_info_instance($this->targetEntityType, $name, $this->bundle)) {
+    if ($instance = field_info_instance($this->getTargetEntityType(), $name, $this->bundle())) {
       $field = $instance->getField();
       $options = $this->pluginManager->prepareConfiguration($field['type'], $options);
 
@@ -240,7 +189,7 @@ public function setComponent($name, array $options = array()) {
     }
 
     // We always store 'extra fields', whether they are visible or hidden.
-    $extra_fields = field_info_extra_fields($this->targetEntityType, $this->bundle, $this->displayContext);
+    $extra_fields = field_info_extra_fields($this->getTargetEntityType(), $this->bundle(), $this->displayContext);
     if (isset($extra_fields[$name])) {
       $options['visible'] = TRUE;
     }
@@ -254,7 +203,7 @@ public function setComponent($name, array $options = array()) {
    * {@inheritdoc}
    */
   public function removeComponent($name) {
-    $extra_fields = field_info_extra_fields($this->targetEntityType, $this->bundle, $this->displayContext);
+    $extra_fields = field_info_extra_fields($this->getTargetEntityType(), $this->bundle(), $this->displayContext);
     if (isset($extra_fields[$name])) {
       // 'Extra fields' are exposed in hooks and can appear at any given time.
       // Therefore we store extra fields that are explicitly being hidden, so
@@ -286,9 +235,68 @@ public function getHighestWeight() {
     }
 
     // Let other modules feedback about their own additions.
-    $weights = array_merge($weights, module_invoke_all('field_info_max_weight', $this->targetEntityType, $this->bundle, $this->displayContext, $this->mode));
+    $weights = array_merge($weights, module_invoke_all('field_info_max_weight', $this->getTargetEntityType(), $this->bundle(), $this->displayContext, $this->getMode()));
 
     return $weights ? max($weights) : NULL;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getTargetEntityType() {
+    return $this->get('targetEntityType')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setTargetEntityType($targetEntityType) {
+    $this->set('targetEntityType', $targetEntityType);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getMode() {
+    return $this->get('mode')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setMode($mode) {
+    $this->set('mode', $mode);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getOriginalMode() {
+    return $this->get('originalMode')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setOriginalMode($originalMode) {
+    $this->set('originalMode', $originalMode);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getStatus() {
+    return $this->get('status')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setStatus($status) {
+    $this->set('status', $status);
+    return $this;
+  }
 }
diff --git a/core/modules/entity/lib/Drupal/entity/EntityDisplayBaseInterface.php b/core/modules/entity/lib/Drupal/entity/EntityDisplayBaseInterface.php
index 7bddb2a..efae1a7 100644
--- a/core/modules/entity/lib/Drupal/entity/EntityDisplayBaseInterface.php
+++ b/core/modules/entity/lib/Drupal/entity/EntityDisplayBaseInterface.php
@@ -92,4 +92,75 @@ public function getHighestWeight();
    */
   public function getRenderer($field_name);
 
+  /**
+   * Return the entity type to be displayed.
+   *
+   * @return string
+   */
+  public function getTargetEntityType();
+
+  /**
+   * Sets the entity type to be displayed.
+   *
+   * @param string targetEntityType
+   *   The entity type that this EntityDisplay is for
+   *
+   * @return self
+   */
+  public function setTargetEntityType($targetEntityType);
+
+  /**
+   * Return the view or form mode to be displayed.
+   *
+   * @return string
+   */
+  public function getMode();
+
+  /**
+   * Sets the view or form mod to be displayed.
+   *
+   * @param string originalMode
+   *   The new mode of this EntityDisplay
+   *
+   * @return self
+   */
+  public function setMode($mode);
+
+  /**
+   * Return the original view or form mode that was requested (case of view/form modes
+   * being configured to fall back to the 'default' display).
+   *
+   * @return string
+   */
+  public function getOriginalMode();
+
+  /**
+   * Set the original view or form mode that was requested (case of view/form modes
+   * being configured to fall back to the 'default' display).
+   *
+   * @param string originalMode
+   *   The original mode of this EntityDisplay
+   *
+   * @return self
+   */
+  public function setOriginalMode($originalMode);
+
+  /**
+   * Return whether this display is enabled or not. If the entity (form) display
+   * is disabled, we'll fall back to the 'default' display.
+   *
+   * @var boolean
+   */
+  public function getStatus();
+
+  /**
+   * Set whether this display is enabled or not. If the entity (form) display
+   * is disabled, we'll fall back to the 'default' display.
+   *
+   * @param string status
+   *   The status of this EntityDisplay
+   *
+   * @return self
+   */
+  public function setStatus($status);
 }
