今天去一家外企的面試題.....
首先問了我這麼一段程式,讓我寫出它的輸出,當然,這個沒啥問題
// codes start
class base{//a base class
// constructor
public base(){
System.out.println("base class construct");
}
// perform
public void perform(){
System.out.println("base class perform");
}
}
class subbase extends base{// derive from base
// constructor
public subbase(){
System.out.println("sub class construct");
}
// perform
public void perform(){
System.out.println("sub class perform");
}
}
public class casting{// test casting class
// constructor
public casting(){
System.out.println("begin casting test");
}
public static void main(String args[]){
base father = new base();
subbase son = new subbase();
father = (base)son; // <1>
father.perform();
son = (subbase)father; // <2>
son.perform();
father = (base)((subbase)father); // <3>
father.perform();
}
}
// codes end
************************************************** *
and the execution result is:
// begin
base class construct
base class construct
sub class construct
sub class perform // <a>
sub class perform // <b>
sub class perform // <c>
// end
************************************************** **
然後就寫了,然後他問為啥,俺就答啊,無非就是一個引用的問題嘛,他老人家還挺高興,無奈笑裡藏刀,馬上又問了一個問題,
((base)new subbase()).perform();
這個語句沒有啥引用了吧,你說說為啥也輸出 sub class perform 啊?
我當時傻眼了,現在還傻呢
也是 new 關鍵字就是產生物件用的,莫非是java虛擬機器內部的事情?
請諸位幫忙給個解答,然後我就找塊最大的豆腐撞死算了.........
// codes start
class base{//a base class
// constructor
public base(){
System.out.println("base class construct");
}
// perform
public void perform(){
System.out.println("base class perform");
}
}
class subbase extends base{// derive from base
// constructor
public subbase(){
System.out.println("sub class construct");
}
// perform
public void perform(){
System.out.println("sub class perform");
}
}
public class casting{// test casting class
// constructor
public casting(){
System.out.println("begin casting test");
}
public static void main(String args[]){
base father = new base();
subbase son = new subbase();
father = (base)son; // <1>
father.perform();
son = (subbase)father; // <2>
son.perform();
father = (base)((subbase)father); // <3>
father.perform();
}
}
// codes end
************************************************** *
and the execution result is:
// begin
base class construct
base class construct
sub class construct
sub class perform // <a>
sub class perform // <b>
sub class perform // <c>
// end
************************************************** **
然後就寫了,然後他問為啥,俺就答啊,無非就是一個引用的問題嘛,他老人家還挺高興,無奈笑裡藏刀,馬上又問了一個問題,
((base)new subbase()).perform();
這個語句沒有啥引用了吧,你說說為啥也輸出 sub class perform 啊?
我當時傻眼了,現在還傻呢
也是 new 關鍵字就是產生物件用的,莫非是java虛擬機器內部的事情?
請諸位幫忙給個解答,然後我就找塊最大的豆腐撞死算了.........
相關文章
- 一家外企的面試題目(C/C++面試題,C語言面試題)面試題C++C語言
- 一家公司的Java面試題Java面試題
- 【轉】外企英文面試經典考題集錦面試
- 轉 外企面試--基本涵蓋了所有問題面試
- 面試外企dba失敗面試
- 今天我去面試 受打擊了:你是學.net 的吧?面試
- 最近去騰訊面試了,分享一波面試題面試題
- 一道面試題:去重排序面試題排序
- 我是個程式設計師 大學剛畢業去一家公司面試程式設計師面試
- 【轉】外企面試順利通關全攻略面試
- 今天BOSS約了個面試,HR直接發我一道面試題面試題
- 我今天要去面試了面試
- 好久沒面試了,整理並分享一下今天的面試題,明天再接再勵。面試題
- 面試題目 字串的去重與壓縮(統計)面試題字串
- 昨天去面試,這5個Python面試題都被考到了,Python面試題No6Python面試題
- 《今天面試了嗎》-Spring面試Spring
- 今天參加oracle公司的Oracle Technical Champion面試Oracle面試
- 面試大型外企的專案經理――我對一些經典問題總結的英文回答模板(轉)面試
- 如何去一家估值10億美元的創業公司工作?創業
- IT外企在中國
- 今天周小哞同學到幼兒園去報名,並參加了他人生中的第一次面試面試
- 香格里拉+去哪網Java面試題及總結Java面試題
- linux下今天遇到的問題Linux
- 今天解決的兩個問題
- 記一次面試一直出現的題——陣列去重面試陣列
- 今天去社保提交了保險中斷~文件問題已經成為IT業普遍現象了……
- 一次去平安的android面試Android面試
- 面試必問的陣列去重複面試陣列
- 今天遇到的問題與解決方法
- 每次面試都被問TCP粘包問題,今天終於可以說的清清楚楚了面試TCP
- 敲黑板,做筆記!金三銀四時去面試,這幾個重要的面試題千萬別忘記!筆記面試題
- 技術人員如何去面試?面試
- 今天你被騷擾了嗎?起底AI電話的來龍去脈AI
- 「前端面試題系列8」陣列去重(10 種濃縮版)前端面試題陣列
- 去面試Python工程師,這幾個基礎問題一定要能回答,Python面試題No4Python工程師面試題
- 阿里巴巴是外企?阿里
- 妥妥的去面試之Android基礎(五)面試Android
- 妥妥的去面試之Android基礎(四)面試Android