我有一个包含对象的类 现在我想从 Container 类外部调用 Box 和 Toy 对象的函数
class Container
{
Box box1 = new Box();
Toy toy1 = new Toy();
public void open()
{
box1.open();
}
public void play()
{
toy1.play();
}
}
如何避免重新创建方法并仅与 Container 类共享方法。 我无法使用继承,因为我有 2 个或更多对象。
最佳答案
您可以按如下方式进行操作。
public interface ToyInterface {
public void play();
}
public class Toy implements ToyInterface {
@Override
public void play() {
System.out.println("Play toy");
}
}
public interface BoxInterface {
public void open();
}
public class Box implements BoxInterface {
@Override
public void open() {
System.out.println("open box");
}
}
public class Container implements ToyInterface, BoxInterface {
private BoxInterface box;
private ToyInterface toy;
public Container() {
box = new Box();
toy = new Toy();
}
public BoxInterface getBox() {
return box;
}
public ToyInterface getToy() {
return toy;
}
@Override
public void play() {
System.out.println("play container");
this.toy.play();
}
@Override
public void open() {
System.out.println("open container");
this.box.open();
}
}
然后就可以在Container之外访问Box和Toy类的方法了。
Container container = new Container();
container.open();
container.getBox().open();
container.play();
container.getToy().play();
关于java - 与类共享字段方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11776103/