我有一个名为Image的类和一个扩展它的类为ImageSheet

ImageSheetImage相同,不同之处在于它具有其他字段,例如图像纸上的帧数。

我想做的是拥有它,因此我可以调用drawImage(img, frame)并使img成为ImageImageSheet并使用相同的方法来处理它们,唯一的区别是,如果它是Image那么frame字段将被忽略,但是当它是ImageSheet时,将读取frame字段并将其用于绘制特定的帧。

我试图避免使用单独的方法,因为它是Image还是ImageSheet,因为我已经有3种不同的drawImage()方法接受不同的输入变量,并且如果我为每个类都做一个,则我将有3对每对基本上相同的方法。

我如何才能实现自己的想法?

最佳答案

我假定drawImage是Image / ImageSheet之外的方法,如果要避免使用单独的方法,则可以使用instanceof并检查img参数是否为imageSheet的实例。

关于java - 类和子类的处理方式是否相同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9107234/

10-09 05:22