大家好! 小弟原来是c++、c#开发 现在有个java问题看不太懂代码如下:
- Java code
private ServiceConnection serConn = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { Log.v(TAG, "onServiceConnected() called"); stockService = IStockQuoteService.Stub.asInterface(service); callService(); } @Override public void onServiceDisconnected(ComponentName name) { Log.v(TAG, "onServiceDisconnected() called"); stockService = null; } };
写在这个new ServiceConnection() {}中的 就相当与重写了 ServiceConnection类中的两个方法?
谢谢!
------解决方案--------------------------------------------------------
是的。这个叫匿名内部类。new ServiceConnection() {}就好比是ServiceConnection类的子类。
------解决方案--------------------------------------------------------
是的
@Override
表示重写,如果方法签名对不上 super type 的方法签名,则编译不通过。
这里 super type 为 ServiceConnection,这个类叫“匿名类”,没有名字 。