爲什麼代碼以下工作作風:局部類定義:爲什麼這個工作
BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
//do something based on the intent's action
}
}
我希望它是:
private class MyBroadcastReceiver extends BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
//do something based on the intent's action
}
}
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
在上面的第一個代碼塊,怎麼做編譯器知道receiver
的類型是MyBroadcastReceiver
而不是BroadcastReceiver
?這不是曖昧嗎?爲什麼這是允許的?
如果我定義:
BroadcastReceiver receiver2 = new BroadcastReceiver();
現在是receiver == reciver2
?
編輯:
廣播接收器 http://developer.android.com/reference/android/content/BroadcastReceiver.html
是'BroadcastReceiver'接口嗎? – adarshr
No. http://developer.android.com/reference/android/content/BroadcastReceiver.html – Caner