我看到一篇文章说到:“
在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为“请问什么是方法的默认行为? 如何赋予? 请写几行简单的代码示例,谢谢.
在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为“请问什么是方法的默认行为? 如何赋予? 请写几行简单的代码示例,谢谢.
但在抽象类中,可以定义抽象方法,也可以写非抽象的方法
比如,抽象类里面本来有个一个抽象方法,来给子类实现
你可以把这个抽象方法转为非抽象方法,但是对于接口定义的方法就没办法
public void method1(){}
public abstract void method2();
public void method3(){}
也就是只有标识为abstract的方法才能不写方法体
前者是interface、后者是abstract class
如果继承接口,则必须实现全部的接口方法,有时候这个变得多余,比如KeyListener也许你只想响应KeyReleased方法,其他两个不不用管,但因为implements了接口,你还是得去实现其余的两个方法KeyAdapter implements KeyListener,这个抽象类实现了接口,但是方法体全部为空,可以认为是默认行为,这样在实际使用中你可以extends KeyAdapter然后直接override KeyReleased方法,而不需要实现其余两个,因为KeyAdapter实现了所有的KeyListener方法,只不过都为空。
那么多陈年烂贴
sigh