我遇到了一个关于java的转发问题。
这是情节:
类MyPicture
扩展了抽象类BufferedImage
。关键是要向BufferedImage
添加一些方法。然后,我有一个类MyWindow
,它设置了一个用户友好的窗口。在本课程中,我想在MyPic
中加载图片,将其复制到MyPic_filtered
,使用MyPicture
MyPic_filtered
上使用的方法,最后显示MyPic
和MyPic_filtered
在分开的窗口中(但最后一部分是OK ^^)。
我不知道我应该为MyPic
和MyPic_filtered
使用哪些类型。我尝试用正确的类型转换它们,它构建但不会运行。
以下是代码:
//Loading the picture
BufferedImage MyPic = ImageIO.read(new File(URL)); //URL is a string
//Copy the picture
MyPicture myPic_filtered = myPic;
//Use the method from MyPicture
myPic_filtered.method_from_MyPicture();`
有人能帮帮我吗?
答案 0 :(得分:0)
当您尝试将基类实例传递给扩展实例时,可以添加一个脚轮,例如:
MyPicture myPic_filtered = (MyPicture)myPic;
然后,您可以使用此关键字访问“myPic”。
或者您可能不需要扩展BufferedImage。只需将bufferedImage视为实例变量,例如:
class MyPicture {
BufferedImage bi;
//other variables
......;
public MyPicture(BufferedImage input) {
this.bi = input;
}
public BufferedImage method_from_MyPicture() {
//Do something with bi and output
........
}
}
不确定哪种结构更好。但它以任何一种方式解决了这个问题。