interface animal{
void sayHi();
String getName();
}class dog implements animal{
public void sayHi(){
System.out.println("I am "+getName()+bark());
}
public String bark(){
return "wang-wang";
}
public String getName(){
return "Bob.";
}
}class bulldog extends dog{
public String getName(){
return "Mike.";
}
public String bark(){
return "wow-wow";
}
}public class test2{
public static void main(String args[]){
animal b=new bulldog();
dog d=(dog)b; //A
check(d);
dog dd=(bulldog)b; //B
check(dd);
}
public static void check(dog d){
System.out.println("I am "+d.getName());
}
public static void check(bulldog d){
System.out.println("I am "+d.getName());
}
}
//A和B处怎么理解的阿?B处dog dd=(bulldog)b;是父类dog引用指向子类对象bulldog吗?A处理解成将一只公狗强制转换成一只狗?然后调用check(dog d)方法,d.getName();怎么还是调用公狗的getName()方法?
要晕了啊...
void sayHi();
String getName();
}class dog implements animal{
public void sayHi(){
System.out.println("I am "+getName()+bark());
}
public String bark(){
return "wang-wang";
}
public String getName(){
return "Bob.";
}
}class bulldog extends dog{
public String getName(){
return "Mike.";
}
public String bark(){
return "wow-wow";
}
}public class test2{
public static void main(String args[]){
animal b=new bulldog();
dog d=(dog)b; //A
check(d);
dog dd=(bulldog)b; //B
check(dd);
}
public static void check(dog d){
System.out.println("I am "+d.getName());
}
public static void check(bulldog d){
System.out.println("I am "+d.getName());
}
}
//A和B处怎么理解的阿?B处dog dd=(bulldog)b;是父类dog引用指向子类对象bulldog吗?A处理解成将一只公狗强制转换成一只狗?然后调用check(dog d)方法,d.getName();怎么还是调用公狗的getName()方法?
要晕了啊...
解决方案 »
- String与任意数据类型的转换
- 怎么在JPanel中添加一个背景图片,月简单越好
- 怎么样让JAVA 的SWING 在任务栏上闪亮提示啊?
- 接着提个初级的问题,谢谢!
- 没有分了,也要问个问题啊
- 为什么再dos下编译程序可以输出结果,但是利用applet再浏览器下编译提示类找不到?
- jbuilder有个编译选项,能加入混淆码,是哪个选项,请指点
- 请帮初学者看看这段简单的代码!感激t0
- 我想学习java应该怎样入手.请教一下高兴.指点一二.
- BufferedReader中的确readLine()读不完?请大家帮帮小弟
- 大哥们,小弟面临人生抉择,求助(我还不想去富士康)
- JFrame实时显示某个变化的数
是
A处理解成将一只公狗强制转换成一只狗?
是
然后调用check(dog d)方法,d.getName();怎么还是调用公狗的getName()方法?