12 changed files with 100 additions and 0 deletions
@ -0,0 +1,6 @@ |
|||||
|
public class Bike extends Vehicle { |
||||
|
@Override |
||||
|
public void run() { |
||||
|
System.out.println("自行车在非机动车道行驶 🚲"); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,6 @@ |
|||||
|
public class Car extends Vehicle { |
||||
|
@Override |
||||
|
public void run() { |
||||
|
System.out.println("汽车在公路上行驶 🚗"); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
public class Circle extends Shape { |
||||
|
// 重写父类的draw方法
|
||||
|
@Override |
||||
|
public void draw() { |
||||
|
System.out.println("绘制圆形 ⭕"); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,22 @@ |
|||||
|
基础题 |
||||
|
|
||||
|
功能:实现Shape父类,Circle、Rectangle子类重写draw()方法,多态调用绘制图形 |
||||
|
|
||||
|
核心文件:Shape.java、Circle.java、Rectangle.java、ShapeTest.java |
||||
|
|
||||
|
运行:编译javac \*.java,执行java ShapeTest |
||||
|
|
||||
|
结果:输出通用图形、圆形、矩形绘制语句 |
||||
|
|
||||
|
  |
||||
|
|
||||
|
进阶题 |
||||
|
|
||||
|
功能:Vehicle抽象类定义run()抽象方法,Car/Bike/Truck子类实现,数组遍历实现多态 |
||||
|
|
||||
|
核心文件:Vehicle.java、Car.java、Bike.java、Truck.java、VehicleTest.java |
||||
|
|
||||
|
运行:编译javac \*.java,执行java VehicleTest |
||||
|
|
||||
|
结果:输出不同交通工具行驶语句 |
||||
|
|
||||
@ -0,0 +1,7 @@ |
|||||
|
public class Rectangle extends Shape { |
||||
|
// 重写父类的draw方法
|
||||
|
@Override |
||||
|
public void draw() { |
||||
|
System.out.println("绘制矩形 🟦"); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,6 @@ |
|||||
|
public class Shape { |
||||
|
// 父类的draw方法,子类可以重写
|
||||
|
public void draw() { |
||||
|
System.out.println("绘制通用图形"); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
public class ShapeTest { |
||||
|
// 多态方法:接收Shape类型参数,调用对应子类的draw
|
||||
|
public static void drawShape(Shape s) { |
||||
|
s.draw(); |
||||
|
} |
||||
|
public static void main(String[] args) { |
||||
|
// 1. 创建不同子类对象
|
||||
|
Shape circle = new Circle(); |
||||
|
Shape rectangle = new Rectangle(); |
||||
|
Shape shape = new Shape(); |
||||
|
// 2. 调用多态方法测试
|
||||
|
System.out.println("=== 基础题多态测试 ==="); |
||||
|
drawShape(shape); // 调用父类Shape的draw
|
||||
|
drawShape(circle); // 调用Circle的draw
|
||||
|
drawShape(rectangle); // 调用Rectangle的draw
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,6 @@ |
|||||
|
public class Truck extends Vehicle { |
||||
|
@Override |
||||
|
public void run() { |
||||
|
System.out.println("卡车在货运道路行驶 🚚"); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,4 @@ |
|||||
|
public abstract class Vehicle { |
||||
|
// 抽象方法run,没有方法体,子类必须重写
|
||||
|
public abstract void run(); |
||||
|
} |
||||
@ -0,0 +1,15 @@ |
|||||
|
public class VehicleTest { |
||||
|
public static void main(String[] args) { |
||||
|
// 1. 创建Vehicle数组,存放不同子类对象
|
||||
|
Vehicle[] vehicles = { |
||||
|
new Car(), |
||||
|
new Bike(), |
||||
|
new Truck() |
||||
|
}; |
||||
|
// 2. 遍历数组,调用每个对象的run()方法
|
||||
|
System.out.println("\n=== 进阶题抽象类多态测试 ==="); |
||||
|
for (Vehicle v : vehicles) { |
||||
|
v.run(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,4 @@ |
|||||
|
在编写Java进阶题代码时,定义抽象方法时编译报错。 |
||||
|
AI指出抽象方法不允许包含方法实现,并提供了正确语法格式,完成修正后编译通过。 |
||||
|
在实现多态数组时,未掌握父类数组存放子类对象的用法, |
||||
|
AI说明数组多态的使用规则后,完成了数组遍历与方法调用代码,程序正常运行。 |
||||
|
After Width: | Height: | Size: 73 KiB |
Loading…
Reference in new issue