diff --git a/core/lib/Drupal/Core/Config/ConfigBase.php b/core/lib/Drupal/Core/Config/ConfigBase.php
index 8dfac43..3508611 100644
--- a/core/lib/Drupal/Core/Config/ConfigBase.php
+++ b/core/lib/Drupal/Core/Config/ConfigBase.php
@@ -9,7 +9,7 @@
 
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Component\Utility\String;
-use \Drupal\Core\DependencyInjection\DependencySerialization;
+use \Drupal\Core\DependencyInjection\DependencySerializationTrait;
 
 /**
  * Provides a base class for configuration objects with get/set support.
@@ -26,7 +26,8 @@
  * @see \Drupal\Core\Config\Config
  * @see \Drupal\Core\Theme\ThemeSettings
  */
-abstract class ConfigBase extends DependencySerialization {
+abstract class ConfigBase {
+  use DependencySerializationTrait;
 
   /**
    * The name of the configuration object.
diff --git a/core/lib/Drupal/Core/Config/ConfigImporter.php b/core/lib/Drupal/Core/Config/ConfigImporter.php
index 6b36913..cce6698 100644
--- a/core/lib/Drupal/Core/Config/ConfigImporter.php
+++ b/core/lib/Drupal/Core/Config/ConfigImporter.php
@@ -12,7 +12,7 @@
 use Drupal\Component\Utility\String;
 use Drupal\Core\Config\Entity\ImportableEntityStorageInterface;
 use Drupal\Core\Config\ConfigEvents;
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Entity\EntityStorageException;
 use Drupal\Core\Lock\LockBackendInterface;
 use Drupal\Core\StringTranslation\StringTranslationTrait;
@@ -38,8 +38,9 @@
  *
  * @see \Drupal\Core\Config\ConfigImporterEvent
  */
-class ConfigImporter extends DependencySerialization {
+class ConfigImporter {
   use StringTranslationTrait;
+  use DependencySerializationTrait;
 
   /**
    * The name used to identify the lock.
diff --git a/core/lib/Drupal/Core/Controller/FormController.php b/core/lib/Drupal/Core/Controller/FormController.php
index 5296a4b..186355a 100644
--- a/core/lib/Drupal/Core/Controller/FormController.php
+++ b/core/lib/Drupal/Core/Controller/FormController.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\Core\Controller;
 
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Form\FormBuilderInterface;
 use Symfony\Component\HttpFoundation\Request;
 
@@ -16,8 +16,8 @@
  *
  * @todo Make this a trait in PHP 5.4.
  */
-abstract class FormController extends DependencySerialization {
-
+abstract class FormController {
+  use DependencySerializationTrait;
   /**
    * The form definition. The format may vary depending on the child class.
    *
diff --git a/core/lib/Drupal/Core/DependencyInjection/DependencySerialization.php b/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php
similarity index 96%
rename from core/lib/Drupal/Core/DependencyInjection/DependencySerialization.php
rename to core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php
index 256ce74..ef543db 100644
--- a/core/lib/Drupal/Core/DependencyInjection/DependencySerialization.php
+++ b/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\Core\DependencyInjection\DependencySerialization.
+ * Contains \Drupal\Core\DependencyInjection\DependencySerializationTrait.
  */
 
 namespace Drupal\Core\DependencyInjection;
@@ -11,7 +11,7 @@
 /**
  * Provides a dependency injection friendly methods for serialization.
  */
-abstract class DependencySerialization {
+trait DependencySerializationTrait {
 
   /**
    * An array of service IDs keyed by property name used for serialization.
diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index a3f1ef7..ca9bf8f 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -8,7 +8,7 @@
 namespace Drupal\Core\Entity;
 
 use Drupal\Core\Cache\Cache;
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Component\Utility\String;
 use Drupal\Component\Utility\Unicode;
@@ -21,7 +21,8 @@
 /**
  * Defines a base entity class.
  */
-abstract class Entity extends DependencySerialization implements EntityInterface {
+abstract class Entity implements EntityInterface {
+  use DependencySerializationTrait;
 
   /**
    * The entity type.
diff --git a/core/lib/Drupal/Core/Entity/EntityControllerBase.php b/core/lib/Drupal/Core/Entity/EntityControllerBase.php
index cbaf670..9b13ed8 100644
--- a/core/lib/Drupal/Core/Entity/EntityControllerBase.php
+++ b/core/lib/Drupal/Core/Entity/EntityControllerBase.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\Core\Entity;
 
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Drupal\Core\StringTranslation\TranslationInterface;
@@ -17,8 +17,9 @@
  *
  * @todo Convert this to a trait.
  */
-abstract class EntityControllerBase extends DependencySerialization {
+abstract class EntityControllerBase {
   use StringTranslationTrait;
+  use DependencySerializationTrait;
 
   /**
    * The module handler to invoke hooks on.
diff --git a/core/lib/Drupal/Core/Form/FormBase.php b/core/lib/Drupal/Core/Form/FormBase.php
index 0bfa753..b3c9248 100644
--- a/core/lib/Drupal/Core/Form/FormBase.php
+++ b/core/lib/Drupal/Core/Form/FormBase.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Routing\UrlGeneratorInterface;
 use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -18,8 +18,9 @@
 /**
  * Provides a base class for forms.
  */
-abstract class FormBase extends DependencySerialization implements FormInterface, ContainerInjectionInterface {
+abstract class FormBase implements FormInterface, ContainerInjectionInterface {
   use StringTranslationTrait;
+  use DependencySerializationTrait;
 
   /**
    * The current request.
diff --git a/core/lib/Drupal/Core/Language/LanguageManager.php b/core/lib/Drupal/Core/Language/LanguageManager.php
index 3d943d0..69ff758 100644
--- a/core/lib/Drupal/Core/Language/LanguageManager.php
+++ b/core/lib/Drupal/Core/Language/LanguageManager.php
@@ -8,13 +8,14 @@
 namespace Drupal\Core\Language;
 
 use Drupal\Component\Utility\String;
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\StringTranslation\TranslationInterface;
 
 /**
  * Class responsible for providing language support on language-unaware sites.
  */
-class LanguageManager extends DependencySerialization implements LanguageManagerInterface {
+class LanguageManager implements LanguageManagerInterface {
+  use DependencySerializationTrait;
 
   /**
    * The string translation service.
diff --git a/core/lib/Drupal/Core/Plugin/PluginBase.php b/core/lib/Drupal/Core/Plugin/PluginBase.php
index 931062d..6934230 100644
--- a/core/lib/Drupal/Core/Plugin/PluginBase.php
+++ b/core/lib/Drupal/Core/Plugin/PluginBase.php
@@ -20,7 +20,7 @@
   /**
    * An array of service IDs keyed by property name used for serialization.
    *
-   * @todo Remove when Drupal\Core\DependencyInjection\DependencySerialization
+   * @todo Remove when Drupal\Core\DependencyInjection\DependencySerializationTrait
    * is converted to a trait.
    *
    * @var array
@@ -30,7 +30,7 @@
   /**
    * {@inheritdoc}
    *
-   * @todo Remove when Drupal\Core\DependencyInjection\DependencySerialization
+   * @todo Remove when Drupal\Core\DependencyInjection\DependencySerializationTrait
    * is converted to a trait.
    */
   public function __sleep() {
@@ -57,7 +57,7 @@ public function __sleep() {
   /**
    * {@inheritdoc}
    *
-   * @todo Remove when Drupal\Core\DependencyInjection\DependencySerialization
+   * @todo Remove when Drupal\Core\DependencyInjection\DependencySerializationTrait
    * is converted to a trait.
    */
   public function __wakeup() {
diff --git a/core/lib/Drupal/Core/Url.php b/core/lib/Drupal/Core/Url.php
index b8fcdeb..c59e2d3 100644
--- a/core/lib/Drupal/Core/Url.php
+++ b/core/lib/Drupal/Core/Url.php
@@ -8,7 +8,7 @@
 namespace Drupal\Core;
 
 use Drupal\Component\Utility\UrlHelper;
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Routing\MatchingRouteNotFoundException;
 use Drupal\Core\Routing\UrlGeneratorInterface;
 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
@@ -18,7 +18,8 @@
 /**
  * Defines an object that holds information about a URL.
  */
-class Url extends DependencySerialization {
+class Url {
+  use DependencySerializationTrait;
 
   /**
    * The URL generator.
diff --git a/core/modules/forum/lib/Drupal/forum/ForumManager.php b/core/modules/forum/lib/Drupal/forum/ForumManager.php
index ea601b7..86f6d46 100644
--- a/core/modules/forum/lib/Drupal/forum/ForumManager.php
+++ b/core/modules/forum/lib/Drupal/forum/ForumManager.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Database\Connection;
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\StringTranslation\TranslationInterface;
@@ -21,8 +21,12 @@
 /**
  * Provides forum manager service.
  */
-class ForumManager extends DependencySerialization implements ForumManagerInterface {
+class ForumManager implements ForumManagerInterface {
   use StringTranslationTrait;
+  use DependencySerializationTrait {
+    __wakeup as defaultWakeup;
+    __sleep as defaultSleep;
+  }
 
   /**
    * Forum sort order, newest first.
@@ -549,7 +553,7 @@ public function updateIndex($nid) {
    * {@inheritdoc}
    */
   public function __sleep() {
-    $vars = parent::__sleep();
+    $vars = $this->defaultSleep();
     // Do not serialize static cache.
     unset($vars['history'], $vars['index'], $vars['lastPostData'], $vars['forumChildren'], $vars['forumStatistics']);
     return $vars;
@@ -559,7 +563,7 @@ public function __sleep() {
    * {@inheritdoc}
    */
   public function __wakeup() {
-    parent::__wakeup();
+    $this->defaultWakeup();
     // Initialize static cache.
     $this->history = array();
     $this->lastPostData = array();
diff --git a/core/modules/views/lib/Drupal/views/Form/ViewsForm.php b/core/modules/views/lib/Drupal/views/Form/ViewsForm.php
index cc01f8d..7b6db55 100644
--- a/core/modules/views/lib/Drupal/views/Form/ViewsForm.php
+++ b/core/modules/views/lib/Drupal/views/Form/ViewsForm.php
@@ -10,7 +10,7 @@
 use Drupal\Component\Utility\UrlHelper;
 use Drupal\Core\Controller\ControllerResolverInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Form\FormInterface;
 use Drupal\Core\Routing\UrlGeneratorInterface;
 use Drupal\views\ViewExecutable;
@@ -25,7 +25,8 @@
  * default is \Drupal\views\Form\ViewsFormMainForm). That way it is actually
  * possible for modules to have a multistep form if they need to.
  */
-class ViewsForm extends DependencySerialization implements FormInterface, ContainerInjectionInterface {
+class ViewsForm implements FormInterface, ContainerInjectionInterface {
+  use DependencySerializationTrait;
 
   /**
    * The controller resolver to get the subform form objects.
diff --git a/core/modules/views/lib/Drupal/views/ViewExecutable.php b/core/modules/views/lib/Drupal/views/ViewExecutable.php
index 5eb82a6..8d78948 100644
--- a/core/modules/views/lib/Drupal/views/ViewExecutable.php
+++ b/core/modules/views/lib/Drupal/views/ViewExecutable.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views;
 
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\views\Plugin\views\query\QueryPluginBase;
 use Drupal\views\ViewStorageInterface;
@@ -26,7 +26,8 @@
  * An object to contain all of the data to generate a view, plus the member
  * functions to build the view query, execute the query and render the output.
  */
-class ViewExecutable extends DependencySerialization {
+class ViewExecutable {
+  use DependencySerializationTrait;
 
   /**
    * The config entity in which the view is stored.
diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
index 1cf99cc..b435d07 100644
--- a/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
+++ b/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
@@ -8,7 +8,7 @@
 namespace Drupal\Tests\Core\DependencyInjection;
 
 use Drupal\Core\DependencyInjection\Container;
-use Drupal\Core\DependencyInjection\DependencySerialization;
+use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Tests\UnitTestCase;
 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -70,7 +70,8 @@ public function testSerialization() {
 /**
  * Defines a test class which has a single service as dependency.
  */
-class TestClass extends DependencySerialization implements ContainerAwareInterface {
+class TestClass implements ContainerAwareInterface {
+  use DependencySerializationTrait;
 
   /**
    * A test service.
