diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php
index d95ddc6..2930237 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php
@@ -26,9 +26,9 @@ protected function renameDisplays() {
     // Rename entity displays.
     if ($this->getOriginalId() !== $this->id()) {
       foreach ($this->loadDisplays('entity_view_display') as $display) {
-        $new_id = $this->getEntityType()->getBundleOf() . '.' . $this->id() . '.' . $display->mode;
+        $new_id = $this->getEntityType()->getBundleOf() . '.' . $this->id() . '.' . $display->getMode();
         $display->set('id', $new_id);
-        $display->bundle = $this->id();
+        $display->setDisplayBundle($this->id());
         $display->save();
       }
     }
@@ -36,9 +36,9 @@ protected function renameDisplays() {
     // Rename entity form displays.
     if ($this->getOriginalId() !== $this->id()) {
       foreach ($this->loadDisplays('entity_form_display') as $form_display) {
-        $new_id = $this->getEntityType()->getBundleOf() . '.' . $this->id() . '.' . $form_display->mode;
+        $new_id = $this->getEntityType()->getBundleOf() . '.' . $this->id() . '.' . $form_display->getMode();
         $form_display->set('id', $new_id);
-        $form_display->bundle = $this->id();
+        $form_display->setDisplayBundle($this->id());
         $form_display->save();
       }
     }
diff --git a/core/lib/Drupal/Core/Entity/Display/EntityDisplayInterface.php b/core/lib/Drupal/Core/Entity/Display/EntityDisplayInterface.php
index dbc4741..50279e1 100644
--- a/core/lib/Drupal/Core/Entity/Display/EntityDisplayInterface.php
+++ b/core/lib/Drupal/Core/Entity/Display/EntityDisplayInterface.php
@@ -91,4 +91,45 @@ public function getHighestWeight();
    */
   public function getRenderer($field_name);
 
+  /**
+   * Returns the entity type this display mode is used for.
+   *
+   * @return string
+   *   The entity type id.
+   */
+  public function getTargetEntityTypeId();
+
+  /**
+   * Return the view or form mode to be displayed.
+   *
+   * @return string
+   */
+  public function getMode();
+
+  /**
+   * 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();
+
+  /**
+   * Gets the bundle to be displayed.
+   *
+   * @return string
+   *   The bundle to be displayed.
+   */
+  public function getDisplayBundle();
+
+  /**
+   * Sets the bundle to be displayed.
+   *
+   * @param string $bundle
+   *   The bundle to be displayed.
+   *
+   * @return $this
+   */
+  public function setDisplayBundle($bundle);
+
 }
diff --git a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
index 12194a3..efd6783 100644
--- a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
@@ -185,7 +185,7 @@ public function processForm($element, FormStateInterface $form_state, $form) {
     }
 
     // Hide extra fields.
-    $extra_fields = \Drupal::entityManager()->getExtraFields($this->targetEntityType, $this->bundle);
+    $extra_fields = \Drupal::entityManager()->getExtraFields($this->getTargetEntityTypeId(), $this->bundle);
     $extra_fields = isset($extra_fields['form']) ? $extra_fields['form'] : array();
     foreach ($extra_fields as $extra_field => $info) {
       if (!$this->getComponent($extra_field)) {
diff --git a/core/lib/Drupal/Core/Entity/EntityDisplayBase.php b/core/lib/Drupal/Core/Entity/EntityDisplayBase.php
index ea39c51..389a621 100644
--- a/core/lib/Drupal/Core/Entity/EntityDisplayBase.php
+++ b/core/lib/Drupal/Core/Entity/EntityDisplayBase.php
@@ -27,21 +27,21 @@
    *
    * @var string
    */
-  public $id;
+  protected $id;
 
   /**
    * Entity type to be displayed.
    *
    * @var string
    */
-  public $targetEntityType;
+  protected $targetEntityType;
 
   /**
    * Bundle to be displayed.
    *
    * @var string
    */
-  public $bundle;
+  protected $bundle;
 
   /**
    * A list of field definitions eligible for configuration in this display.
@@ -55,7 +55,7 @@
    *
    * @var string
    */
-  public $mode;
+  protected $mode;
 
   /**
    * Whether this display is enabled or not. If the entity (form) display
@@ -85,7 +85,7 @@
    *
    * @var string
    */
-  public $originalMode;
+  protected $originalMode;
 
   /**
    * The plugin objects used for this display, keyed by field name.
@@ -392,4 +392,40 @@ public function onDependencyRemoval(array $dependencies) {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getTargetEntityTypeId() {
+    return $this->targetEntityType;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getMode() {
+    return $this->get('mode');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getOriginalMode() {
+    return $this->get('originalMode');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDisplayBundle() {
+    return $this->bundle;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setDisplayBundle($bundle) {
+    $this->set('bundle', $bundle);
+    return $this;
+  }
+
 }
diff --git a/core/modules/field_ui/src/Tests/EntityDisplayTest.php b/core/modules/field_ui/src/Tests/EntityDisplayTest.php
index 0db126a..e3217eb 100644
--- a/core/modules/field_ui/src/Tests/EntityDisplayTest.php
+++ b/core/modules/field_ui/src/Tests/EntityDisplayTest.php
@@ -87,15 +87,15 @@ public function testEntityDisplayCRUD() {
 
     // Check that CreateCopy() creates a new component that can be correclty
     // saved.
-    EntityViewMode::create(array('id' => $display->targetEntityType . '.other_view_mode', 'targetEntityType' => $display->targetEntityType))->save();
+    EntityViewMode::create(array('id' => $display->getTargetEntityTypeId() . '.other_view_mode', 'targetEntityType' => $display->getTargetEntityTypeId()))->save();
     $new_display = $display->createCopy('other_view_mode');
     $new_display->save();
     $new_display = entity_load('entity_view_display', $new_display->id());
     $dependencies = $new_display->calculateDependencies();
     $this->assertEqual(array('config' => array('core.entity_view_mode.entity_test.other_view_mode'), 'module' => array('entity_test')), $dependencies);
-    $this->assertEqual($new_display->targetEntityType, $display->targetEntityType);
-    $this->assertEqual($new_display->bundle, $display->bundle);
-    $this->assertEqual($new_display->mode, 'other_view_mode');
+    $this->assertEqual($new_display->getTargetEntityTypeId(), $display->getTargetEntityTypeId());
+    $this->assertEqual($new_display->getDisplayBundle(), $display->getDisplayBundle());
+    $this->assertEqual($new_display->getMode(), 'other_view_mode');
     $this->assertEqual($new_display->getComponents(), $display->getComponents());
   }
 
@@ -115,7 +115,7 @@ public function testEntityGetDisplay() {
     // Check that entity_get_display() returns the correct object.
     $display = entity_get_display('entity_test', 'entity_test', 'default');
     $this->assertFalse($display->isNew());
-    $this->assertEqual($display->id, 'entity_test.entity_test.default');
+    $this->assertEqual($display->id(), 'entity_test.entity_test.default');
     $this->assertEqual($display->getComponent('component_1'), array('weight' => 10));
   }
 
@@ -287,11 +287,11 @@ public function testRenameDeleteBundle() {
     $old_form_display = entity_load('entity_form_display', 'node.article.default');
     $this->assertFalse((bool) $old_form_display);
     $new_display = entity_load('entity_view_display', 'node.article_rename.default');
-    $this->assertEqual('article_rename', $new_display->bundle);
-    $this->assertEqual('node.article_rename.default', $new_display->id);
+    $this->assertEqual('article_rename', $new_display->getDisplayBundle());
+    $this->assertEqual('node.article_rename.default', $new_display->id());
     $new_form_display = entity_load('entity_form_display', 'node.article_rename.default');
-    $this->assertEqual('article_rename', $new_form_display->bundle);
-    $this->assertEqual('node.article_rename.default', $new_form_display->id);
+    $this->assertEqual('article_rename', $new_form_display->getDisplayBundle());
+    $this->assertEqual('node.article_rename.default', $new_form_display->id());
 
     $expected_view_dependencies = array(
       'config' => array('field.field.node.article_rename.body', 'node.type.article_rename'),
diff --git a/core/modules/field_ui/src/Tests/EntityFormDisplayTest.php b/core/modules/field_ui/src/Tests/EntityFormDisplayTest.php
index b7f5032..2e1690c 100644
--- a/core/modules/field_ui/src/Tests/EntityFormDisplayTest.php
+++ b/core/modules/field_ui/src/Tests/EntityFormDisplayTest.php
@@ -39,7 +39,7 @@ public function testEntityGetFromDisplay() {
     // Check that entity_get_form_display() returns the correct object.
     $form_display = entity_get_form_display('entity_test', 'entity_test', 'default');
     $this->assertFalse($form_display->isNew());
-    $this->assertEqual($form_display->id, 'entity_test.entity_test.default');
+    $this->assertEqual($form_display->id(), 'entity_test.entity_test.default');
     $this->assertEqual($form_display->getComponent('component_1'), array('weight' => 10));
   }
 
diff --git a/core/modules/history/history.module b/core/modules/history/history.module
index 61395de..57439bb 100644
--- a/core/modules/history/history.module
+++ b/core/modules/history/history.module
@@ -134,7 +134,7 @@ function history_cron() {
  */
 function history_node_view_alter(array &$build, EntityInterface $node, EntityViewDisplayInterface $display) {
   // Update the history table, stating that this user viewed this node.
-  if (($display->originalMode === 'full') && \Drupal::currentUser()->isAuthenticated()) {
+  if (($display->getOriginalMode() === 'full') && \Drupal::currentUser()->isAuthenticated()) {
     // When the window's "load" event is triggered, mark the node as read.
     // This still allows for Drupal behaviors (which are triggered on the
     // "DOMContentReady" event) to add "new" and "updated" indicators.
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayBaseTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayBaseTest.php
new file mode 100644
index 0000000..d1dbef3
--- /dev/null
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/EntityDisplayBaseTest.php
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\Core\Config\Entity\EntityDisplayBaseTest.
+ */
+
+namespace Drupal\Tests\Core\Config\Entity;
+
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @coversDefaultClass \Drupal\entity\EntityDisplayBase
+ *
+ * @group Drupal
+ * @group Config
+ */
+class EntityDisplayBaseTest extends UnitTestCase {
+
+  /**
+   * @covers ::setTargetEntityTypeId()
+   * @covers ::getTargetEntityTypeId()
+   */
+  public function testGetTargetEntityTypeId() {
+    $display = $this->getMockForAbstractClass('\Drupal\Core\Entity\EntityDisplayBase', array(), '', FALSE);
+    $display->setTargetEntityTypeId('test');
+    $this->assertEquals('test', $display->getTargetEntityTypeId());
+  }
+
+  /**
+   * @covers ::setMode()
+   * @covers ::getMode()
+   */
+  public function testGetMode() {
+    $display = $this->getMockForAbstractClass('\Drupal\Core\Entity\EntityDisplayBase', array(), '', FALSE);
+    $display->setMode('test');
+    $this->assertEquals('test', $display->getMode());
+  }
+
+  /**
+   * @covers ::setOriginalMode()
+   * @covers ::getOriginalMode()
+   */
+  public function testGetOriginalMode() {
+    $display = $this->getMockForAbstractClass('\Drupal\Core\Entity\EntityDisplayBase', array(), '', FALSE);
+    $display->setOriginalMode('test');
+    $this->assertEquals('test', $display->getOriginalMode());
+  }
+
+  /**
+   * @covers ::setDisplayBundle()
+   * @covers ::getDisplayBundle()
+   */
+  public function testGetDisplayBundle() {
+    $display = $this->getMockForAbstractClass('\Drupal\Core\Entity\EntityDisplayBase', array(), '', FALSE);
+    $display->setDisplayBundle('test');
+    $this->assertEquals('test', $display->getDisplayBundle());
+  }
+
+
+}
