public void paint(Graphics g){}为什么不能写成public void paint(new Graphics()){}?
这样写是可以的,类对象是可以做实例参数来参与程序之中进行使用的!
而addKeyListener(new KeyAdapter(){});就不能写成addKeyListener(KeyAdapter k{});
这里面的话是不可以这样的,因为new KeyAdapter(){}这是一个匿名子类,是整体包括大括号在一起是new KeyAdapter的子类的,这里的KeyAdapter不是抽象的类就是接口,因为抽象类和接口是不能创建实例对象的,所以,如果不创建子类而直接使用的话只能通过建立子类的对象来使用了,一般使用的格式 new 接口名/抽象类名(){};
其实这样使用的话是为了方便,开始学的人都不大理解,我看楼主应该先建立子类继承,通过子类的对象,然后在将子类的对象作为参数来使用,那就会很明白了! |