作者forris (乔巴)
看板java
标题[J2SE] 多型与转型
时间Sat Feb 16 17:13:47 2008
class Father{
String name = "Father";
String getName(){
return name;
}
String greeting(){
return "class Father";
}
}
class Son extends Father{
String name = "Son";
String greeting(){
return "class Son";
}
void foo(){
System.out.println((Son)this).greeting();
System.out.prtinln((Father)this).greeting();
}
}
要问印出来的讯息
((Son)this).greeting() 是指 Son 类别的 greeting(), 所以讯息为
class Son.
((Father)this).greeting() 是指 Son 类别的 greeting(), 但是为 Father 型别,
出现的讯息不应该跟着转型後的型别走吗?
怎麽不是
class Father 而是
class Son ?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.116.196.131
1F:推 neigence:当然是跟你的实体走 不会跟着型态走 02/16 18:57
2F:→ neigence:型态决定你可以呼叫什麽 实体决定你呼叫的是什麽 02/16 18:58
3F:推 H45:也就是说实体是实体,样子是样子 02/16 20:37