假设我有一个名为“bankAccount”的课程。此类有一个名为“view”的方法,可以使用该方法访问帐户中的金额。
我们还说我有一个名为“bankAccountPW”的类,它继承自bankAccount。我会覆盖'view'方法,这样只有输入正确的密码才会返回金额。我如何访问基类(bankAccount)'view'方法,以便根据原始的'view'方法定义被覆盖的'view'方法?
简而言之,使用Racket,如何在子类中重写的方法中访问基类方法?
答案 0 :(得分:4)
您需要使用超级表单:
#lang racket
(define bankAccount%
(class object%
(super-new)
(define/public (view) 'amount)))
(define bankAccountPW%
(class bankAccount%
(super-new)
(define/override (view)
(if #t (super view) 'blocked))))
(send (new bankAccountPW%) view)
=> 'amount