title: Is it an error for a class to call an abstractmethod from its superclass? Why does PEP 544 say it is?
body: <p>I'm currently studying <a href="https://www.python.org/dev/peps/pep-0544/" rel="nofollow noreferrer">PEP544</a> to see whether type hinting protocols can help me in my development workflow.</p>
  <p>In the section <em>Explicitly Declaring Implementation</em>, there is some code which I have rewritten as follows:</p>
  <pre><code>from typing import Protocol
  from abc import abstractmethod
  
  class PColor(Protocol):
    @abstractmethod
    def draw(self) -&gt; str: ... 
  
    def complex_method(self) -&gt; int:
      return 1+1
  
  class NiceColor(PColor):
    def draw(self) -&gt; str:
      return &quot;deep blue&quot;
  
  class BadColor(PColor):
    def draw(self) -&gt; str:
      return super().draw()
  </code></pre>
  <p>According to the PEP, the line <code>return super().draw()</code> should throw an error as there is no default implementation in <code>PColor</code>.</p>
  <p>I've tried running this with <code>python test.py</code> and <code>mypy --strict test.py</code>, and both of them run without throwing an error.</p>
  <p>Is there a mistake in the PEP, or am I missing something?</p>