黑马程序员技术交流社区

标题: 这个语句的作用 [打印本页]

作者: Frank_Ms1ZR    时间: 2016-7-26 22:22
标题: 这个语句的作用
import java.awt.*;
import javax.swing.*;


public class FlyBall {
public static void main(String[] args) {
JFrame w = new JFrame();

w.setSize(300, 400);

MyJPanel mj = new MyJPanel();
w.add(mj);

Thread t = new Thread(mj);
t.start();

w.setVisible(true);

}
}


class MyJPanel extends JPanel implements Runnable{
int x=30;
int y=30;
public void paint(Graphics g) {
super.paint(g);
g.fillOval(x, y, 30, 30);
}

public void run() {
while(true) {
y++;
if( y>400 ) {
y=0;
}
try{
Thread.sleep(40);
}catch(Exception e){}
repaint();
}
}
}


以上是代码, super.paint(g); 这条语句在代码中起到什么作用
作者: pwn582253080    时间: 2016-7-26 22:56
就是调用父类的paint()方法,做一些初始化的工作。
看一下下面的程序里就懂了:

class A
{
  void prn()
  {
     System.out.println("I am in the A.prn()");
  }
}

public class B extends A
{
   void prn()
   {
      super.prn();   //**
      System.out.println("I am in the A.prn");
   }
   
    public static void main(String[] args)
    {
       B b=new B();
       b.prn();
    }
}
-----------------------------------------------------------------------------
   在上面的代码中如果没有调用super.prn(),那么打印结果将只会显示"I am in the A.prn()",如果调用了将显示两条打印语句:
   I am in the A.prn()
   I am in the B.prn()

在你上面的代码中,调用的super.paint(g),是为了让父类办你做一些事前的工作,如刷新屏幕、重绘图像等等
作者: 东东瑞    时间: 2016-7-26 23:15

作者: 李铮    时间: 2016-7-26 23:19
6666666不错哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2