ZhangJinxuan 2 months ago
parent
commit
52cbe68dd4
  1. 51
      6/w5/ShapeDemo.java
  2. 31
      动物叫声系统.java
  3. 23
      测试.java

51
6/w5/ShapeDemo.java

@ -0,0 +1,51 @@
public class ShapeDemo {
public static void main(String[] args) {
// 创建不同形状的对象
Shape circle = new Circle();
Shape rectangle = new Rectangle();
// 测试drawShape方法
drawShape(circle);
drawShape(rectangle);
}
/**
* 调用形状的draw方法
* @param s 形状对象
*/
public static void drawShape(Shape s) {
s.draw();
}
}
/**
* 形状基类
*/
class Shape {
/**
* 绘制方法
*/
public void draw() {
System.out.println("绘制形状");
}
}
/**
* 圆形类
*/
class Circle extends Shape {
@Override
public void draw() {
System.out.println("绘制圆形");
}
}
/**
* 矩形类
*/
class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("绘制矩形");
}
}

31
动物叫声系统.java

@ -0,0 +1,31 @@
abstract class Animal {
// 抽象方法:动物叫声
public abstract void makeSound();
}
// 2. Swimmable 接口
interface Swimmable {
// 游泳方法
void swim();
}
// 3. Dog 类:继承 Animal,实现 Swimmable
class Dog extends Animal implements Swimmable {
@Override
public void makeSound() {
System.out.println("小狗汪汪叫:汪汪汪!");
}
@Override
public void swim() {
System.out.println("小狗在水里狗刨式游泳!");
}
}
// 4. Cat 类:继承 Animal,不实现 Swimmable
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("小猫喵喵叫:喵喵喵!");
}
}

23
测试.java

@ -0,0 +1,23 @@
public class AnimalTest {
public static void main(String[] args) {
// 多态方式创建对象
Animal dog = new Dog();
Animal cat = new Cat();
// 调用 makeSound 方法(多态体现)
System.out.println("=== 动物叫声测试 ===");
dog.makeSound();
cat.makeSound();
// 测试 Swimable 接口(Dog 能游泳,Cat 不能)
System.out.println("\n=== 游泳能力测试 ===");
if (dog instanceof Swimmable) {
((Swimmable) dog).swim();
}
if (cat instanceof Swimmable) {
((Swimmable) cat).swim();
} else {
System.out.println("小猫不会游泳哦!");
}
}
}
Loading…
Cancel
Save