我看到一篇文章说到:“
在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为“请问什么是方法的默认行为? 如何赋予? 请写几行简单的代码示例,谢谢.

解决方案 »

  1.   

    就是说,在interface中,所有的方法都必须是抽象的,未实现的
    但在抽象类中,可以定义抽象方法,也可以写非抽象的方法
    比如,抽象类里面本来有个一个抽象方法,来给子类实现
    你可以把这个抽象方法转为非抽象方法,但是对于接口定义的方法就没办法
      

  2.   

    就是方法体,接口里面所有方法只能是public void methodName();而抽象类则可以为:
    public void method1(){}
    public abstract void method2();
    public void method3(){}
    也就是只有标识为abstract的方法才能不写方法体
      

  3.   

    可以看一下java.awt.event.KeyListener和KeyAdapter
    前者是interface、后者是abstract class
    如果继承接口,则必须实现全部的接口方法,有时候这个变得多余,比如KeyListener也许你只想响应KeyReleased方法,其他两个不不用管,但因为implements了接口,你还是得去实现其余的两个方法KeyAdapter implements KeyListener,这个抽象类实现了接口,但是方法体全部为空,可以认为是默认行为,这样在实际使用中你可以extends KeyAdapter然后直接override KeyReleased方法,而不需要实现其余两个,因为KeyAdapter实现了所有的KeyListener方法,只不过都为空。
      

  4.   

    积极不好么?
    那么多陈年烂贴
    sigh
      

  5.   

    believefym 回复对我很有帮助,谢谢了. 可惜已经结贴了,不能给分:)