2013-03-24 15 views
3

超類方法比方說,我有一個名爲「的BankAccount」類。這個類有一個稱爲「查看」的方法,可以訪問帳戶中的金額。球拍 - 如何重寫方法內訪問子

讓我們也說我有一個名爲「bankAccountPW」從繼承的BankAccount類。我會覆蓋'view'方法,只有輸入正確的密碼才能返回金額。我如何訪問基類(bankAccount)的'view'方法,以便根據原始'view'方法定義重寫的'view'方法?

總之,隨着球拍,我怎樣才能訪問被覆蓋的方法中的基類的方法在子類?

回答

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 
+0

這是完美的!謝謝! – user2205551 2013-03-24 22:06:38