我试图回答这个简短的问题,但是我很难理解我的讲师的意思是“我们为什么要知道这一点?”。任何意见是极大的赞赏。
问题:
“ 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
通常可以几乎确定地表明您的设计缺少基类中的函数,而派生类中却覆盖了该函数。