当前位置: 技术问答>java相关
ejb中的接口的简单问题
来源: 互联网 发布时间:2015-09-06
本文导语: 在ejb中,有许多接口都可以产生自己的对象.就连actionListener都可以,是不是EJB中定义的所有接口都可以?还是java中的所有接口都可以这样?能解释一下吗? | 一般说来,java是不可以生成接口的对象的....
在ejb中,有许多接口都可以产生自己的对象.就连actionListener都可以,是不是EJB中定义的所有接口都可以?还是java中的所有接口都可以这样?能解释一下吗?
|
一般说来,java是不可以生成接口的对象的.但是有一些可以返回接口的对象.接口的最常用方法是将其得引用传递给方法,然后根据多态性调用不同对象的方法.你不会是把接口的引用也看成了它的对象了吧?interface CanFight {
void fight();
}
interface CanSwim {
void swim();
}
interface CanFly {
void fly();
}
class ActionCharacter {
public void fight() {}
}
class Hero extends ActionCharacter
implements CanFight, CanSwim, CanFly {
public void swim() {}
public void fly() {}
}
public class Adventure {
static void t(CanFight x) { x.fight(); }
static void u(CanSwim x) { x.swim(); }
static void v(CanFly x) { x.fly(); }
static void w(ActionCharacter x) { x.fight(); }
public static void main(String[] args) {
Hero i = new Hero();
t(i); // Treat it as a CanFight
u(i); // Treat it as a CanSwim
v(i); // Treat it as a CanFly
w(i); // Treat it as an ActionCharacter
}
} ///:~
这是thinking in java 中的一段,大概是这样吧?
我的理解就如此了.
void fight();
}
interface CanSwim {
void swim();
}
interface CanFly {
void fly();
}
class ActionCharacter {
public void fight() {}
}
class Hero extends ActionCharacter
implements CanFight, CanSwim, CanFly {
public void swim() {}
public void fly() {}
}
public class Adventure {
static void t(CanFight x) { x.fight(); }
static void u(CanSwim x) { x.swim(); }
static void v(CanFly x) { x.fly(); }
static void w(ActionCharacter x) { x.fight(); }
public static void main(String[] args) {
Hero i = new Hero();
t(i); // Treat it as a CanFight
u(i); // Treat it as a CanSwim
v(i); // Treat it as a CanFly
w(i); // Treat it as an ActionCharacter
}
} ///:~
这是thinking in java 中的一段,大概是这样吧?
我的理解就如此了.
|
有两种接口,一种是JAVA本身的接口,这个肯定可以,另一种是EJB中特有的接口,在EJB中有Home,Remote等接口,可以在其他Bean中定义并调用它们,可以生成自己的对象,访问自己。