我试图回答这个简短的问题,但是我很难理解我的讲师的意思是“我们为什么要知道这一点?”。任何意见是极大的赞赏。

问题:

“ instanceof运算符的用途是什么?显然,它将指定它是否是某事物的“实例”,而不是答案。问题是,为什么我们想知道这一点?”

最佳答案

instanceof运算符最明显,最常见的用法是决定对子类进行特殊处理:

void recordPayment(Payment pmt) {
    // Do something common for all subclasses
    recordAmount(pmt.getAmount());
    // Do something special for the credit card subclasses
    if (pmt instanceof CreditCardPayment) {
        CreditCardPayment ccPmt = (CreditCardPayment)pmt;
        recordCreditCardNumber(ccPmt.getCardNumber());
    }
}


使用instanceof通常可以几乎确定地表明您的设计缺少基类中的函数,而派生类中却覆盖了该函数。

10-01 02:44