举个例子:
// set up frame, panel
JFrame container = new JFrame("Game Example");
panel = (JPanel)container.getContentPane();
我检查了 Java API,这两个类都实现了相同的接口(interface),那么这是多态性的原因吗?
还是因为这两个类都是通过继承从Component类继承而来的?
最佳答案
就是 contentPane 通常是 JPanel。打印出对象的类名并亲自查看。
System.out.println(container.getContentPane().getClass().getName());
请注意,您实际上不是“将 JFrame 类型转换为 JPanel”。 JFrame 的 contentPane 不是 JFrame 本身,几乎不是。
关于java - 为什么可以将 JFrame 强制转换为 JPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14349101/