我一直在搜索/阅读Oracle的文档大约2个小时,而且我很难过。我以为我理解抽象类是什么,以及如何使用它(至少在基本层面)。我对这一切还是比较新的,所以请耐心等待。
据我了解,抽象类无法实例化,而是需要子类来实现它的任何部分。我正在研究的课程,试图剖析和理解,是BufferStrategy和Canvas,以及它们如何协同工作。我没有在项目中使用这些类,或多或少只是想了解它们的工作原理。
所以,让我说我有我的Canvas,并为它创建一个BufferStrategy:
BufferStrategy bs;
Canvas c;
c = new Canvas();
c.createBufferStrategy(2);
bs = c.getBufferStrategy();
文档说“.getBufferStrategy()”返回当前在Canvas中使用的BufferStrategy。它显然没有返回BufferStrategy的实例,所以它究竟返回了什么, 如何存储在“bs”中?另外,当“画布”为“画布的一个实例”时,我甚至会将“bs”称为“bs”?
我注意到BufferStrategy的唯一子类,“Component.BltBufferStrategy& Component.FlipBufferStrategy”,据我所知,它嵌套在Component中,因此与Canvas共享。但我没有看到它发挥作用的任何地方。
我希望这一切都有道理。如果这是一个我现在应该知道的简单的基本问题,我很抱歉,但这是去年的第一件事实际上让我感到难过;可能是因为我不理解某些概念以及我曾经想过的。谢谢你的阅读。