用抽象类定义的字符串方法返回时无法输出
public abstract class Animal {
abstract String cry();//这一行的cry方法无法正常输出
abstract String getAnimalName();
}
public class Application {
public static void main(String[] args) {
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
//模拟器
public class Simulator {
void playSound(Animal animal) {
animal.cry();
System.out.println("这是"+animal.getAnimalName()+"的声音");
}
}
public class Dog extends Animal{
@Override
String cry() {
return "“汪汪!”——";//无法正常返回
}
@Override
String getAnimalName() {
return "金毛";
}
}
public class Cat extends Animal{//继承Animal类的Cat类
@Override
String cry() {
return " “喵喵”—";//无法正常返回
}
@Override
String getAnimalName() {
return "银渐层猫";
}
}
用void类型方法可以 ,用St 类型不可以阿