Java 需要使用另一个子类的对象调用接口的一个子类
我有一个Java 需要使用另一个子类的对象调用接口的一个子类,java,class,interface,Java,Class,Interface,我有一个界面 public interface I { // an abstract method m1(); } 我有类A类和B类 class A implements I { public void m1() { System.out.println("m1 Method From A"); } } class B implements I { public void m1() { System.out.p
界面
public interface I
{
// an abstract method m1();
}
我有类
A类
和B类
class A implements I
{
public void m1()
{
System.out.println("m1 Method From A");
}
}
class B implements I
{
public void m1()
{
System.out.println("m1 Method From B");
}
}
我可以使用为class A
创建的object
调用m1
方法class B
例如,我创建了A的object
,比如I=newa()代码>
如果我写为I.m1()
m1
应该调用类B
的方法
注:A类
和B类
之间没有超级类或子类
关系
我能否打电话只是个疑问
谢谢…您需要将类型为B
的依赖项/关联添加到a
。这可以通过在a
大概是这样的:
class A implements I
{
private B b = new B();
public void m1()
{
System.out.println("m1 Method From A");
b.m2();
}
}
您需要将类型为B
的依赖项/关联添加到a
。这可以通过在a
大概是这样的:
class A implements I
{
private B b = new B();
public void m1()
{
System.out.println("m1 Method From A");
b.m2();
}
}
您可以使用反射:
接口
public interface I {
public void m1();
}
A类
public class A implements I
{
public void m1()
{
System.out.println("m1 method from A");
try {
Method sampleMethod = B.class.getMethod("m1" , new Class[] {});
sampleMethod.invoke(B.class.newInstance());
}
catch(Exception e) {
}
}
}
B类
public class B implements I {
public void m1() {
System.out.println("m1 method from B");
}
}
Main
public static void main(String[] args) {
A a = new A();
a.m1();
}
作品:
m1方法从一个
m1方法来自B
您可以使用反射:
接口
public interface I {
public void m1();
}
A类
public class A implements I
{
public void m1()
{
System.out.println("m1 method from A");
try {
Method sampleMethod = B.class.getMethod("m1" , new Class[] {});
sampleMethod.invoke(B.class.newInstance());
}
catch(Exception e) {
}
}
}
B类
public class B implements I {
public void m1() {
System.out.println("m1 method from B");
}
}
Main
public static void main(String[] args) {
A a = new A();
a.m1();
}
作品:
m1方法从一个
m1方法来自B
谢谢您的回答,但我的疑问是,我是否可以调用B类的m1()
,而无需创建对象
到B类
此解决方案正在使用关联。没有关联,您不能从A调用B类的m1()。感谢您的回答,但我的疑问是,我是否可以调用B类的m1()
,而不创建对象到B类
此解决方案使用关联。如果没有关联,就不能从A调用类B的m1()。