abstract class Animal {
String name="";
abstract void speak();
/*{
System.out.println("未定義");
}*/
}
interface printable {
void print();
}
class Cat extends Animal implements printable {
public Cat() {
name = "貓";
}
public void speak() {
System.out.println("喵喵!");
}
public void print() {
System.out.print(name+":");
}
}
class Dog extends Animal implements printable{
public Dog() {
name = "狗";
}
public void speak() {
System.out.println("汪汪!");
}
public void print() {
System.out.print(name+":");
}
}
class Zoo {
public static void main(String[] args) {
// Animal a = new Animal();
// a.speak();
Cat c1 = new Cat();
System.out.println("=========c1.speak()=========");
c1.speak();
System.out.println("=========Dogs, Cats,speak()=========");
Animal[] animals = new Animal[] { new Cat(),
new Dog(), new Dog(), new Cat(), new Dog() };
for (int i=0; i<animals.length; i++) {
animals[i].speak();
}
System.out.println("=========Dogs, Cats,speak()=========");
printable[] pa = new printable[] { new Cat(),
new Dog(), new Dog(), new Cat(), new Dog() };
for (int i=0; i<animals.length; i++) {
pa[i].print();
animals[i].speak();
}
}
}