interface?

跳蚤图 2006-12-01 05:09:21
是不是implements 一个接口就要重写它所有的静态方法,如果这样的话不是很麻烦么?
...全文
231 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphiwcdj 2006-12-06
  • 打赏
  • 举报
回复
接口的实现也不一定要重写所有方法,可以重写一部分,但是实现接口的类要定义为abstract???
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我认为接口里的方法必须全部实现!可以执行以下程序
interface Viecle{

void start();
}


class Car implements Viecle{

public void start()
{
System.out.println("发动引擎");
}


}
class Ship implements Viecle{

public void start()
{
System.out.println("起锚");
}
}

public class TestInterface{

public static void main(String[] args)
{
Car c=new Car();
Ship s=new Ship();

c.start();
s.start();
}
}
雨中蝎子 2006-12-06
  • 打赏
  • 举报
回复
如果只实现部分功能,这样的类只能是抽象类,不能被实例化。。。

也可以不用每次都实现所有方法,只要自己另外写一个适配器(Adapter)来实现该接口,以后只要继承该适配器,重写其中的方法,不过这样也带来一个问题,就是编译器检查不出你是否实现了应该实现的方法。
Gary强z 2006-12-06
  • 打赏
  • 举报
回复
这是我改写楼上朋友的代码,已通过编译:
interface Vehicle{
void speed();
void start();
}

abstract class Car implements Vehicle{
public abstract void speed();
public void start(){
System.out.println("start!");
}
}

class RunningCar extends Car{
public void speed(){
System.out.println("Speed up!");
}
}

public class Test{
public static void main(String[] args){
RunningCar t=new RunningCar();
t.start();
t.speed();
}
}
程序输出:
start!
Speed up!
Gary强z 2006-12-06
  • 打赏
  • 举报
回复
fp_zacard(自由指针) ( ) 信誉:100 Blog 2006-12-1 18:07:46 得分: 0

纠正一下:接口不能有静态方法,它的方法是abstract 并且是public的。
接口的实现也不一定要重写所有方法,可以重写一部分,但是实现接口的类要定义为abstract

--------------------

接口中的方法隐含是public和abstract的,变量隐含是public、static、finally的。
使用类实现接口时,如果不重写接口的所有方法,则只能将该类定义为抽象类,即abstract;否则必须实现接口的所有方法。
zhangbin_10 2006-12-05
  • 打赏
  • 举报
回复
当燃了。。
yangyy118560 2006-12-05
  • 打赏
  • 举报
回复
一定要实现它里面的方法的
wanguanghai 2006-12-05
  • 打赏
  • 举报
回复
接口里面只有 public abstract 的方法,和public 的字段,继承接口必须重写抽象的方法,否则仍然是一个抽象类
88324877 2006-12-05
  • 打赏
  • 举报
回复
接口里没静态方法,只有静态字段。
如果你不实现他所有的方法,就把扩展类声明为abstract.
gongyali2005 2006-12-05
  • 打赏
  • 举报
回复
但如果是一个类IMPLEMENTS一个接口就必须重写他所有的方法
aniude 2006-12-01
  • 打赏
  • 举报
回复
静态方法??接口不可能有静态方法
malligator 2006-12-01
  • 打赏
  • 举报
回复
如:
interface:WindowFocusListener, WindowListener, WindowStateListener, EventListener
->
class:WindowAdapter
malligator 2006-12-01
  • 打赏
  • 举报
回复
有些有适配器Adapter
想用什么就用什么

:就是为了解决你提到的这个问题的(也有很多就有一个方法的呀)
e3002 2006-12-01
  • 打赏
  • 举报
回复
同意楼上的
fp_zacard 2006-12-01
  • 打赏
  • 举报
回复
纠正一下:接口不能有静态方法,它的方法是abstract 并且是public的。
接口的实现也不一定要重写所有方法,可以重写一部分,但是实现接口的类要定义为abstract
galant2008 2006-12-01
  • 打赏
  • 举报
回复
你可以在方法体内什么都不做嘛

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧