问题描述
- 请问这段程序的输出是什么 为什么
- public class Test {
public static void main(String[] args) {
Animal a = new Dog();
a.syaHi();
Animal b = new Bulldog();
b.syaHi();
Dog dog = (Dog)b;
dog.syaHi();
check(dog);
Bulldog bulldog = (Bulldog)b;
check(bulldog);
}
public static void check(Dog dog)
{
System.out.println(""check dog""+dog.getName()+""."");
}
public static void check(Bulldog bulldog)
{
System.out.println(""check bulldog""+bulldog.getName()+""."");
}
}
interface Animal
{
void syaHi();
String getName();
}
class Dog implements Animal
{
public String getName()
{
return ""Bob"";
}
private String bark()
{
return ""wang-wang"";
}
public void syaHi()
{
System.out.println(""I am ""+getName()+"".""+bark());
}
}
class Bulldog extends Dog
{
@Override
public String getName(){return ""Mike"";}
private String bark(){return ""WOO-WOO"";}
}
解决方案
你就不能自己运行一下嘛?运行了,什么顺序都出来,且不会有错。
解决方案二:
I am Bob.wang-wang
I am Mike.wang-wang
I am Mike.wang-wang
check dogMike.
check bulldogMike.
解决方案三:
I am Bob.wang-wangI am Mike.wang-wangI am Mike.wang-wangcheck dogMike.check bulldogMike.
解决方案四:
I am Bob.wang-wangI am Mike.wang-wangI am Mike.wang-wangcheck dogMike.check bulldogMike.
解决方案五:
我们脑子也不是计算机,自己运行一下不就知道了
解决方案六:
I am Bob.wang-wangI am Mike.wang-wangI am Mike.wang-wangcheck dogMike.check bulldogMike.