ActionListener action = new A();class A implements actionListener
{
actionPerformed(actionEvent e)
{
//...
}
}请问A是类,而actionListener是接口,为何能像超类 = new 子类()一样用呢,还有不是接口不能实例话么?
{
actionPerformed(actionEvent e)
{
//...
}
}请问A是类,而actionListener是接口,为何能像超类 = new 子类()一样用呢,还有不是接口不能实例话么?
这样定义得好处是对使用action得开发者而言,只知道接口(方法名,参数),而不知道里面得实现。
这就是传说中java"多态"的一种表现形式不要问,“为什么能够”这样。这是java虚拟机决定的,是发明java的大神们决定的。我们只要知道能这么用就可以了。
这里的A一定要注意了,它可不能是其他的类,它只能是实现了这个接口的类~
举个例子和你说
interface Point{
void output();
}
class cbbs implements Point{}
class Imclass{
void imace(Point p)//注意这里,虽然这里是Point p但是传递进来的一定是实现上面接口的方法}
不知道上述解释对你是否有帮助,有的话不要忘了给分啊