间歇性混吃等死,持续性踌躇满志系列-------------第18天
1、飞机游戏小项目
①创建窗口
1 package cn.xfj.game; 2 3 import javax.swing.*; 4 import java.awt.event.WindowAdapter; 5 import java.awt.event.WindowEvent; 6 7 //飞机游戏的主窗口 8 public class MyGameFrame extends JFrame { 9 //初始化窗口10 public void launchFrame() {11 this.setTitle("My first game");12 this.setVisible(true);13 this.setSize(500,500);14 this.setLocation(200,200);15 16 this.addWindowListener(new WindowAdapter(){17 public void windowCloing(WindowEvent e){18 System.exit(0);19 }20 });21 }22 23 public static void main(String[] args) {24 MyGameFrame f = new MyGameFrame();25 f.launchFrame();26 }27 }
运行结果图
② 图形和文本绘制
super.paint(g); // 调用父类的paint方法或调用下面的方法直接绘制组件
注:这个位置不加super调用会出现窗体显示不正常。
2、抽象方法和抽象方法
抽象方法:使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。
抽象类:包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们可以做到严格限制子类的设计,使子类之间更加通用。
1 package cn.zh.abstrac; 2 3 //抽象类 4 abstract class Animal{ 5 //抽象方法 6 abstract public void shout(); 7 } 8 class Dog extends Animal{ 9 //子类必须实现父类的抽象方法,否则编译错误10 public void shout(){11 System.out.println("www...");12 }13 public void seeDoor(){14 System.out.println("seedoor...");15 }16 }17 //测试抽象类18 public class TestAbstractClasss {19 public static void main(String[] args) {20 Dog g = new Dog();21 g.shout();22 g.seeDoor();23 }24 }
运行结果图
抽象类的使用要点:①有抽象方法的类智能定义成抽象类②抽象类不能被实例化,即不能用new来实例化抽象类。③抽象类可以包含属性、方法、构造方法。但是只能用来被子类调用④抽象类智能用来被继承⑤抽象方法必须被子类实现。