diff --git a/core/lib/Drupal/Core/Entity/EntityPublishedInterface.php b/core/lib/Drupal/Core/Entity/EntityPublishedInterface.php
new file mode 100644
index 0000000..316883f
--- /dev/null
+++ b/core/lib/Drupal/Core/Entity/EntityPublishedInterface.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Drupal\Core\Entity;
+
+/**
+ * Defines an interface for tracking the entity publishing state.
+ */
+interface EntityPublishedInterface {
+
+  /**
+   * Returns the entity published status indicator.
+   *
+   * Unpublished entities are only visible to their authors and to administrators.
+   *
+   * @return bool
+   *   TRUE if the entity is published.
+   */
+  public function isPublished();
+
+  /**
+   * Sets the published status of a entity.
+   *
+   * @param bool $published
+   *   TRUE to set this entity to published, FALSE to set it to unpublished.
+   *
+   * @return $this
+   */
+  public function setPublished($published);
+
+}
diff --git a/core/modules/comment/src/CommentInterface.php b/core/modules/comment/src/CommentInterface.php
index 72a6652..65236e2 100644
--- a/core/modules/comment/src/CommentInterface.php
+++ b/core/modules/comment/src/CommentInterface.php
@@ -3,13 +3,14 @@
 namespace Drupal\comment;
 
 use Drupal\Core\Entity\ContentEntityInterface;
+use Drupal\Core\Entity\EntityPublishedInterface;
 use Drupal\user\EntityOwnerInterface;
 use Drupal\Core\Entity\EntityChangedInterface;
 
 /**
  * Provides an interface defining a comment entity.
  */
-interface CommentInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface {
+interface CommentInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface, EntityPublishedInterface {
 
   /**
    * Comment is awaiting approval.
@@ -192,14 +193,6 @@ public function getCreatedTime();
   public function setCreatedTime($created);
 
   /**
-   * Checks if the comment is published.
-   *
-   * @return bool
-   *   TRUE if the comment is published.
-   */
-  public function isPublished();
-
-  /**
    * Returns the comment's status.
    *
    * @return int
@@ -208,17 +201,6 @@ public function isPublished();
   public function getStatus();
 
   /**
-   * Sets the published status of the comment entity.
-   *
-   * @param bool $status
-   *   Set to TRUE to publish the comment, FALSE to unpublish.
-   *
-   * @return \Drupal\comment\CommentInterface
-   *   The class instance that this method is called on.
-   */
-  public function setPublished($status);
-
-  /**
    * Returns the alphadecimal representation of the comment's place in a thread.
    *
    * @return string
diff --git a/core/modules/node/src/NodeInterface.php b/core/modules/node/src/NodeInterface.php
index 980dacd..f3bcaea 100644
--- a/core/modules/node/src/NodeInterface.php
+++ b/core/modules/node/src/NodeInterface.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\node;
 
+use Drupal\Core\Entity\EntityPublishedInterface;
 use Drupal\Core\Entity\RevisionLogInterface;
 use Drupal\user\EntityOwnerInterface;
 use Drupal\Core\Entity\EntityChangedInterface;
@@ -10,7 +11,7 @@
 /**
  * Provides an interface defining a node entity.
  */
-interface NodeInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface, RevisionLogInterface {
+interface NodeInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface, RevisionLogInterface, EntityPublishedInterface {
 
   /**
    * Gets the node type.
@@ -97,27 +98,6 @@ public function isSticky();
   public function setSticky($sticky);
 
   /**
-   * Returns the node published status indicator.
-   *
-   * Unpublished nodes are only visible to their authors and to administrators.
-   *
-   * @return bool
-   *   TRUE if the node is published.
-   */
-  public function isPublished();
-
-  /**
-   * Sets the published status of a node..
-   *
-   * @param bool $published
-   *   TRUE to set this node to published, FALSE to set it to unpublished.
-   *
-   * @return \Drupal\node\NodeInterface
-   *   The called node entity.
-   */
-  public function setPublished($published);
-
-  /**
    * Gets the node revision creation timestamp.
    *
    * @return int
