我有一个包含对象的类,现在我想从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个或更多的对象。
发布于 2012-08-02 19:33:52
您可以按如下方式进行操作。
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();
}
}然后,您可以在容器外部访问Box和Toy类的方法。
Container container = new Container();
container.open();
container.getBox().open();
container.play();
container.getToy().play();https://stackoverflow.com/questions/11776103
复制相似问题