我知道这可能是非常基本的,而且我不知道如何做到这一点感到羞耻(更糟糕的是,在搜索解决方案时没有成功)。
如何将 thing 类型的对象从A传递给C?
public class A extends B {
}
public class B {
public class thing {
}
}
public class C extends JFrame {
}
我可以访问A中的 thing ,因为我正在扩展B,但是在使用C类时我无法扩展B,因为我需要扩展JFrame。
修改
抱歉模糊不清。 A类有一组 thing 类型的对象,我想迭代C类中的那些对象。
编辑2
当然......显而易见的选择。让 thing 成为自己的类...... :(
为那些可能也有类似问题的人承认羞耻。
答案 0 :(得分:4)
首先,如果它是一个内部类 - 你可能不应该从外部访问它...
但是,如果你坚持,你可以尝试做如下:
public class A extends B {
}
public class B {
public class thing {
}
private thing mything = new thing();
public thing getThing(){
return mything;
}
}
public class C extends JFrame {
A a = new A();
Object thing = a.getThing();
}
答案 1 :(得分:0)
从外部访问内部类通常是一个坏主意,但如果你必须建议查看代理设计模式,如本文所述:
答案 2 :(得分:0)
您可能尝试使用java中无法实现的多重继承! 您可以使用接口来实现2种不同的行为或使用某些设计模式 实现这样的目标。
目前还不清楚你要做什么。但是看到复合或工厂方法模式 我认为这可能有所帮助。