see below for updated answer. What does not work exactly? I can get it to execute with minor edits, but that is probably because you pasted the code outside a code block (tip: use three back-ticks to start a code block).
Edits made: the __name__ and __main__ were bold instead of surrounded by two underscores, and the double quotes were curly so I replaced them with single straight quotes.
import Rhino
import Rhino.Input.Custom as ric
import scriptcontext as sc
def RunCommand():
gp1 = ric.GetPoint()
gp1.SetCommandPrompt('Add point 1')
gp1.Get()
sc.doc.Objects.AddPoint(gp1.Point())
sc.doc.Views.Redraw()
gp2 = InheritedGetPoint()
gp2.SetCommandPrompt('Add point 2')
gp2.Get()
sc.doc.Objects.AddPoint(gp2.Point())
sc.doc.Views.Redraw()
class InheritedGetPoint (ric.GetPoint):
def __init__(self):
pass
if __name__ == '__main__':
RunCommand()
In Python3 the common pattern is: super().__init__(self)
It means the base class names only have to be changed once, and the __init__ calls can cascade throughout all (multiple co-operative) base classes if they all include this convention.