日期:2014-05-20  浏览次数:20597 次

java的语法问题 极其简单 马上结贴!
大家好! 小弟原来是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,这个类叫“匿名类”,没有名字 。