我在Java重写方面有点困惑.假设我们有以下继承:
class A{
public A(){
}
void show(){
System.out.println("SuperClass");
}
}
class B extends A{
@Override
void show(){
System.out.println("SubClass");
}
}
public class Test {
public static void main(String[] args) {
B b = new B();
b.show();
}
}
Run Code Online (Sandbox Code Playgroud)
显然,class B覆盖了show()由class A.继承的方法.为什么不b.show();打印消息System.out.println("SuperClass");,因为class B现在的方法show()来自class A?
谢谢.
我需要将给定的任何图像转换为字节数组以满足加密要求.我正在使用JProgressBar来监控转换进度,以防所选图像很大:
File p= new File("C:\");
BufferedImage oImg = ImageIO.read(p);
ByteArrayOutputStream ba = new ByteArrayOutputStream();
ImageIO.write(oImg, "jpg", ba);
ba.flush();
ProgressBar pb = new ProgressBar();
Thread thread = new Thread(pb);
thread.join();
pb.fireTask(ba.toByteArray());
Run Code Online (Sandbox Code Playgroud)
我定义了一个ProgressBar使用SwingWorker如下的类:
public class ProgressBar extends JPanel implements Runnable {
private JProgressBar progressBar;
private Task task;
private byte[] imgByteArray;
public void run() {
createGUI();
}
// Create the GUI
private void createGUI() {
JFrame frame = new JFrame("Converting...");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JComponent newContentPane = new ProgressBar();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
JPanel …Run Code Online (Sandbox Code Playgroud)