JAVA的集合和接口这块中,如collection接口中的方法,是不是在每种继承它的集合中都要具体实现?
如果这样的话,这个接口就起到了门面、友好使用集合的作用,和c++STL的友元方法比,STL方法也能实现对各种容器的操作,但同时,这些方法只在STL中有一个通用的具体定义,...
如果这样的话,这个接口就起到了门面、友好使用集合的作用,和c++STL的友元方法比,STL方法也能实现对各种容器的操作,但同时,这些方法只在STL中有一个通用的具体定义,这样就节省了空间。相比JAVA的接口,没有节省空间的优势,因为接口的方法在每种集合中,都有各自的具体定义。
以上是我的一点结论,请c++\java双料大神指点一下!谢谢! 展开
以上是我的一点结论,请c++\java双料大神指点一下!谢谢! 展开
1个回答
展开全部
虽然我很久不学c++了,但是关于java的接口问题吧,Collection接口中的方法都是抽象方法,需要被实现它的类去具体实现,如果你不实现它的每种方法,那么就会仍然还有抽象方法,而含有抽象方法的类是一个抽象类,抽象类不能创建对象,这样你都没法用这个类了。
追问
你的意思:类里面有一个抽象方法,即使没有abstract修饰,也是抽象类吗?
我只知道c++这样,如果类中有一个抽象方法,那么它就是抽象类。
追答
举个例子吧
interface Inter
{
public abstract void show();
public abstract void speak();
}
abstract class Demo implements Inter
{
public void show()//覆写show方法
{
}
public abstract void speak();//此处没有覆写,那么还是一个抽象方法,而类中含有抽象方法,类上就要用abstract修饰,就成为抽象类,此处是编译不过的,因为既然你实现了接口就是要能用接口中的方法,结果你没有完全实现,不能创建对象了,那还用毛线的方法啊,白实现接口了,不要妄想使用静态哦,因为接口中时不能定义静态方法的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询