Да, это будет работать. И это достойный способ сделать это. Вы просто передаете экземпляр класса A:
public class Foo {
public void doFoo() {..} // that's the method you want to use
}
public class Bar {
private Foo foo;
public Bar(Foo foo) {
this.foo = foo;
}
public void doSomething() {
foo.doFoo(); // here you are using it.
}
}
И тогда вы можете иметь:
Foo foo = new Foo();
Bar bar = new Bar(foo);
bar.doSomething();