diff --git a/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php b/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
index eabce25..048c204 100644
--- a/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
+++ b/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
@@ -16,41 +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;
-
-  /**
    * List of component display options, keyed by component name.
    *
    * @var array
@@ -58,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
@@ -108,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();
   }
 
   /**
@@ -125,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;
@@ -156,7 +113,7 @@ public function getExportProperties() {
    */
   public function createCopy($mode) {
     $display = $this->createDuplicate();
-    $display->mode = $display->originalMode = $mode;
+    $display->setOriginalMode($mode)->setMode($mode);
     return $display;
   }
 
@@ -179,7 +136,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.
@@ -222,7 +179,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);
 
@@ -231,7 +188,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;
     }
@@ -245,7 +202,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
@@ -277,9 +234,53 @@ 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;
+  }
 }
diff --git a/core/modules/entity/lib/Drupal/entity/EntityDisplayBaseInterface.php b/core/modules/entity/lib/Drupal/entity/EntityDisplayBaseInterface.php
index 7bddb2a..3f7e9c2 100644
--- a/core/modules/entity/lib/Drupal/entity/EntityDisplayBaseInterface.php
+++ b/core/modules/entity/lib/Drupal/entity/EntityDisplayBaseInterface.php
@@ -92,4 +92,48 @@ 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.
+   *
+   * @return self
+   *   The class instance that this method is called on.
+   */
+  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.
+   *
+   * @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).
+   *
+   * @return self
+   */
+  public function setOriginalMode();
 }
