# Java程序设计 第5周作业 ## 一、作业内容 本周作业主要练习Java中的**抽象类**和**继承**,通过两个实例理解面向对象程序设计中多态的应用。 ## 二、项目结构 ``` w5/ ├── shape/ # 图形绘制示例 │ ├── Shape.java # 抽象父类 │ ├── Circle.java # 圆形子类 │ ├── Rectangle.java # 矩形子类 │ └── Main.java # 测试类 ├── vehicle/ # 交通工具示例 │ ├── Vehicle.java # 抽象父类 │ ├── Car.java # 汽车子类 │ ├── Bike.java # 自行车子类 │ ├── Truck.java # 卡车子类 │ └── Main.java # 测试类 └── README.md # 说明文档 ``` ## 三、知识点总结 ### 1. 抽象类 - 使用`abstract`关键字修饰的类称为抽象类 - 抽象类不能被实例化 - 抽象类可以包含抽象方法和具体方法 - 抽象方法只有声明,没有实现 ### 2. 继承 - 使用`extends`关键字实现继承 - 子类继承父类的属性和方法 - 子类必须实现父类的所有抽象方法(除非子类也是抽象类) ### 3. 多态 - 父类引用可以指向子类对象(向上转型) - 运行时根据实际对象类型调用相应的方法 ## 四、运行方法 ### shape包: ```bash cd w5 javac shape/*.java java shape.Main ``` ### vehicle包: ```bash cd w5 javac vehicle/*.java java vehicle.Main ``` ## 五、运行结果 详见`输出结果.txt`文件。 ## 六、心得体会 1. 抽象类为子类提供了一个公共的模板,定义了子类必须实现的方法。 2. 通过继承可以复用代码,减少重复。 3. 多态使得程序更加灵活,可以用统一的接口操作不同的对象。 --- 作者:[学生姓名] 日期:2026年4月