diff --git a/core/lib/Drupal/Core/Entity/EntityPublishedInterface.php b/core/lib/Drupal/Core/Entity/EntityPublishedInterface.php
index e69de29..7a0200e 100644
--- a/core/lib/Drupal/Core/Entity/EntityPublishedInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityPublishedInterface.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Drupal\Core\Entity;
+
+interface EntityPublishedInterface {
+
+  /**
+   * Denotes that the entity is published.
+   */
+  const PUBLISHED = 1;
+
+  /**
+   * Denotes that the entity is not published.
+   */
+  const UNPUBLISHED = 0;
+
+  /**
+   * 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 an entity.
+   *
+   * @param bool $published
+   *   TRUE to set this entity to published, FALSE to set it to unpublished.
+   *
+   * @return \Drupal\Core\Entity\EntityInterface
+   *   The called entity.
+   */
+  public function setPublished($published);
+
+}
\ No newline at end of file
diff --git a/core/modules/comment/src/CommentInterface.php b/core/modules/comment/src/CommentInterface.php
index 28318ee..e01e158 100644
--- a/core/modules/comment/src/CommentInterface.php
+++ b/core/modules/comment/src/CommentInterface.php
@@ -3,23 +3,24 @@
 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.
    */
-  const NOT_PUBLISHED = 0;
+  const NOT_PUBLISHED = EntityPublishedInterface::UNPUBLISHED;
 
   /**
    * Comment is published.
    */
-  const PUBLISHED = 1;
+  const PUBLISHED = EntityPublishedInterface::PUBLISHED;
 
   /**
    * Determines if this comment is a reply to another comment.
@@ -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/comment/src/Entity/Comment.php b/core/modules/comment/src/Entity/Comment.php
index 1981c0f..f3f1e4f 100644
--- a/core/modules/comment/src/Entity/Comment.php
+++ b/core/modules/comment/src/Entity/Comment.php
@@ -7,6 +7,7 @@
 use Drupal\Core\Entity\ContentEntityBase;
 use Drupal\comment\CommentInterface;
 use Drupal\Core\Entity\EntityChangedTrait;
+use Drupal\Core\Entity\EntityPublishedInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Field\BaseFieldDefinition;
@@ -477,7 +478,7 @@ public function setCreatedTime($created) {
    * {@inheritdoc}
    */
   public function isPublished() {
-    return $this->get('status')->value == CommentInterface::PUBLISHED;
+    return $this->get('status')->value == EntityPublishedInterface::PUBLISHED;
   }
 
   /**
@@ -491,7 +492,7 @@ public function getStatus() {
    * {@inheritdoc}
    */
   public function setPublished($status) {
-    $this->set('status', $status ? CommentInterface::PUBLISHED : CommentInterface::NOT_PUBLISHED);
+    $this->set('status', $status ? EntityPublishedInterface::PUBLISHED : EntityPublishedInterface::UNPUBLISHED);
     return $this;
   }
 
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 5c86a13..07586d0 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -14,6 +14,7 @@
 use Drupal\Core\Database\Query\AlterableInterface;
 use Drupal\Core\Database\Query\SelectInterface;
 use Drupal\Core\Database\StatementInterface;
+use Drupal\Core\Entity\EntityPublishedInterface;
 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Render\Element;
@@ -32,12 +33,12 @@
 /**
  * Denotes that the node is not published.
  */
-const NODE_NOT_PUBLISHED = 0;
+const NODE_NOT_PUBLISHED = EntityPublishedInterface::UNPUBLISHED;
 
 /**
  * Denotes that the node is published.
  */
-const NODE_PUBLISHED = 1;
+const NODE_PUBLISHED = EntityPublishedInterface::PUBLISHED;
 
 /**
  * Denotes that the node is not promoted to the front page.
diff --git a/core/modules/node/src/Entity/Node.php b/core/modules/node/src/Entity/Node.php
index bdb8050..a113f5c 100644
--- a/core/modules/node/src/Entity/Node.php
+++ b/core/modules/node/src/Entity/Node.php
@@ -4,6 +4,7 @@
 
 use Drupal\Core\Entity\ContentEntityBase;
 use Drupal\Core\Entity\EntityChangedTrait;
+use Drupal\Core\Entity\EntityPublishedInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Field\BaseFieldDefinition;
@@ -242,6 +243,7 @@ public function setSticky($sticky) {
     $this->set('sticky', $sticky ? NODE_STICKY : NODE_NOT_STICKY);
     return $this;
   }
+
   /**
    * {@inheritdoc}
    */
@@ -253,7 +255,7 @@ public function isPublished() {
    * {@inheritdoc}
    */
   public function setPublished($published) {
-    $this->set('status', $published ? NODE_PUBLISHED : NODE_NOT_PUBLISHED);
+    $this->set('status', $published ? EntityPublishedInterface::PUBLISHED : EntityPublishedInterface::UNPUBLISHED);
     return $this;
   }
 
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
