(define-class Point2 (define x 0) (define y 0) (define (init x- y-) (print "init") (set! x x-) (set! y y-)) (define (pascal) (+ x y)) (define (norm2) (+ (* x x) (* y y))) (define (display) (print x "," y " (" self ")"))) (define-class (Point3 Point2) (define z 0) (inherit norm2 pascal) (define (display) (super) (print (pascal)) (print " >> " z)) (define (norm3) (+ (norm2) (* z z))) (define (init x- y- z-) (super x- y-) (set! z z-))) (define p2 (new Point2 1 2)) (send p2 display) (define p3 (new Point3 1 2 3)) (send p3 display) (print (send p3 norm3))