如果一个类实现了一个接口,那接口的方法必须都实现吧,我一直这么认为,但是我在jdk中碰到了这个例子
AbstractListModel类实现了ListModel接口,接口包括以下4个方法:
addListDataListener,removeListDataListener
getElementAt,getSize
AbstractListModel类实现了前两个方法,后两个方法继承而来,没有具体实现,可以参见jdk,这样也行么
然后自己定义class DataModel extends AbstractListModel,发现前两个方法不用实现,而后两个方法必须实现,否则出错
另外,AbstractListModel好像是抽象类
高手帮忙,谢谢!
AbstractListModel类实现了ListModel接口,接口包括以下4个方法:
addListDataListener,removeListDataListener
getElementAt,getSize
AbstractListModel类实现了前两个方法,后两个方法继承而来,没有具体实现,可以参见jdk,这样也行么
然后自己定义class DataModel extends AbstractListModel,发现前两个方法不用实现,而后两个方法必须实现,否则出错
另外,AbstractListModel好像是抽象类
高手帮忙,谢谢!
一个抽象类。
当你用DataModel继承AbstractListModel类时如果不实现AbstractListModel中的抽象方法
则它也是个抽象类。由于你的前2个方法在AbstractListModel类中已经实现 所以不会出错
而后两个没有实现所以出错。
接口其实是抽象类的一种,只不过它全是抽象方法而已
AbstractListModel是抽象类,实现了ListModel,但由于它是抽象类,它可以有抽象方法,所以可以不用实现ListModel的另外两个抽象方法你自己的DataModel不是抽象类,继承了AbstractListModel之后就一定要实现它的所有抽象方法,不然也只能声明味abstract