现在的位置: 首页 > 综合 > 正文

Android5.0–小记–抽象类的实例化

2018年08月31日 ⁄ 综合 ⁄ 共 445字 ⁄ 字号 评论关闭

在分析Android5.0的代码时,发现一段代码比较有意思,特摘录如下:

 

在呼叫挂断的时候,会调用到getNullConnection,这里会new一个Connection实例,

    static synchronized Connection getNullConnection() {

        if (sNullConnection == null) {

            sNullConnection = new Connection() {};

        }

        return sNullConnection;

    }

 

实际上,Connection是一个抽象类,根据我们的常识,抽象类是不能被实例化的。

public abstract class Connection {

}           

 

所以我们需要注意到Connection后面的大括号{},它表示用匿名类的方式重写了抽象类,只不过类里面没有重写任何方法,这样就“实现”了一个抽象类的实例化,在我们需要的时候,可以指向真正要操作的实例。

 

抱歉!评论已关闭.