public class Test4 { interface An {
void sayHi(); String getName();
} class Dog implements An {
public String getName() {
return "Bob";
} public void sayHi() {
System.out.println("I am " + getName() + "." + back()+" eat "+eat());
} public String back() {
return "wang-wang";
}
private String eat() {
return "bone";
}
} class BullDog extends Dog {
public String getName() {
return "Mike";
} public String back() {
return "WOO-WOO";
}
private String eat() {
return "meat";
}
} public void checkout() {
An a = new Dog();
a.sayHi(); An b = new BullDog();
b.sayHi(); Dog dog = (Dog) b;
check(dog); BullDog bulldog = (BullDog) b;
check(bulldog);
} public void check(Dog dog) {
System.out.println("check dog " + dog.getName());
} public void check(BullDog bulldog) {
System.out.println("check dog " + bulldog.getName());
} /**
* @param args
*/
public static void main(String[] args) {
Test4 tA = new Test4();
tA.checkout();
}} An b = new BullDog();
b.sayHi(); Dog dog = (Dog) b;
check(dog);
这个强制转换后调用的还是BullDog的方法 那么强制转换到底转换的什么呀??
void sayHi(); String getName();
} class Dog implements An {
public String getName() {
return "Bob";
} public void sayHi() {
System.out.println("I am " + getName() + "." + back()+" eat "+eat());
} public String back() {
return "wang-wang";
}
private String eat() {
return "bone";
}
} class BullDog extends Dog {
public String getName() {
return "Mike";
} public String back() {
return "WOO-WOO";
}
private String eat() {
return "meat";
}
} public void checkout() {
An a = new Dog();
a.sayHi(); An b = new BullDog();
b.sayHi(); Dog dog = (Dog) b;
check(dog); BullDog bulldog = (BullDog) b;
check(bulldog);
} public void check(Dog dog) {
System.out.println("check dog " + dog.getName());
} public void check(BullDog bulldog) {
System.out.println("check dog " + bulldog.getName());
} /**
* @param args
*/
public static void main(String[] args) {
Test4 tA = new Test4();
tA.checkout();
}} An b = new BullDog();
b.sayHi(); Dog dog = (Dog) b;
check(dog);
这个强制转换后调用的还是BullDog的方法 那么强制转换到底转换的什么呀??
解决方案 »
- S2SH 多用户刷新页面,效率问题,开发方式探讨
- debug 怎么用嘛?上几张图 赏分100
- Struts2 返回json问题~
- hibnerate中的IOC和AOP的作用各是什么啊!
- 一个父类为超类,如何在new出子类前改变父类属性
- 请教关于FCKeditor中编辑区的配置(去掉编辑区当输入过长时出现的滚动条,以及设置编辑区的大小为298×168)?
- tomcat配置mysql数据库连接池错误,谁能帮解决?
- Ibatis的sqlMap配置文件中不能写中文
- 《高级JAVA2大学教程》这本书怎么样?
- 如何处理EntityBean 的Collection和Client UI
- 一个有趣的for循环面试题
- 如何从JAVA SE转到JAVA EE?
或者BullDog dog=new BullDog()就可以了