abstract class WindowAdapter implements Window{
public void open(){} ; // 打开
public void close(){} ; // 关闭
public void activated(){} ; // 窗口活动
public void iconified(){} ; // 窗口最小化
public void deiconified(){};// 窗口恢复大小
}又麻烦大家了。(上面是我在一本书上看到的)
问:上面的类WindowAdapter 是“抽象”的吗?
疑问:
1. 形如:fun();的称是抽象方法,
2.但是:fun(){};好像不是抽象方法吧。
3.抽象方法好像必须用abstract标识吧。
2、类中只要出现一个abstract修饰的方法,而且没有方法体实现,那么该类必须声明成抽象类(接口看下面)
3、接口需要interface修饰,并且所有的方法必须是abstract的最后想说的是楼主是个伸手党。楼下不要回了。
2 由abstract关键字修饰.
所以上面的方法应该写成
abstract class WindowAdapter implements Window{
public abstract void open(); // 打开
public abstract void close(); // 关闭
public abstract void activated(); // 窗口活动
public abstract void iconified() ;// 窗口最小化
public abstract void deiconified();// 窗口恢复大小
}
2 楼主举的例子可以理解成 这个抽象类在Window接口和使用这个接口的类之间架了座桥梁。 其目的是为了方便编写我们实现接口的代码。
比如,我们写一个类,要实现Window接口,必须把这个接口里的方法全部覆写,(否则我们只能命名为抽象类,不能实例化),但我们只需要其中一个方法,(比如关闭窗口)。那我们也得把其余4个方法都覆写,及使什么都不干。
有了那个抽象类,情况就简单了。我们继承这个类,那些接口里的方法都由抽象类覆写了。(都不再是抽象的了)。那我们在自己的类里只要覆写用到的那个方法就行了,不用再去覆写其余4个了。(抽象类提我们覆写了)。
4楼这样写好像没意义了。
最后想说的是楼主是个伸手党。楼下不要回了。
[/Quote]
大哥,别这样认为嘛,我知道这个问题不是很深入,我问过别人的意见也不统一,我才拿来问的,而且我也查过资料,没有直接拿来问的哈···