gpt4 book ai didi

java - 与类共享字段方法

转载 作者:行者123 更新时间:2023-12-01 15:14:50 25 4
gpt4 key购买 nike

我有一个包含对象的类现在我想从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com