Browse Source

上传文件至 'w6'

main
JiangYouhan 2 months ago
parent
commit
99a50bfa7e
  1. 19
      w6/Animal.java
  2. 36
      w6/AnimalTest.java
  3. 13
      w6/Cat.java
  4. 18
      w6/Dog.java
  5. 5
      w6/Swimmable.java

19
w6/Animal.java

@ -0,0 +1,19 @@
package com.rental.animal;
public abstract class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void makeSound();
}

36
w6/AnimalTest.java

@ -0,0 +1,36 @@
package com.rental.animal;
public class AnimalTest {
public static void main(String[] args) {
System.out.println("===== 多态测试 =====\n");
Animal dog = new Dog("旺财");
Animal cat = new Cat("小白");
System.out.println("测试 makeSound 方法(多态调用):");
dog.makeSound();
cat.makeSound();
System.out.println("\n===== 测试游泳能力 =====\n");
if (dog instanceof Swimmable) {
((Swimmable) dog).swim();
}
if (cat instanceof Swimmable) {
((Swimmable) cat).swim();
} else {
System.out.println(cat.getName() + "不会游泳");
}
System.out.println("\n===== 动物数组测试 =====\n");
Animal[] animals = {new Dog("大黄"), new Cat("小花"), new Dog("黑子")};
for (Animal animal : animals) {
animal.makeSound();
if (animal instanceof Swimmable) {
((Swimmable) animal).swim();
}
}
}
}

13
w6/Cat.java

@ -0,0 +1,13 @@
package com.rental.animal;
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println(getName() + "喵喵叫");
}
}

18
w6/Dog.java

@ -0,0 +1,18 @@
package com.rental.animal;
public class Dog extends Animal implements Swimmable {
public Dog(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println(getName() + "汪汪叫");
}
@Override
public void swim() {
System.out.println(getName() + "在游泳");
}
}

5
w6/Swimmable.java

@ -0,0 +1,5 @@
package com.rental.animal;
public interface Swimmable {
void swim();
}
Loading…
Cancel
Save