java中的this的四種用法 JAVA中A a = new B()什么意思?
JAVA中A a = new B()什么意思?A A=new b()實(shí)例化一個(gè)子類對(duì)象A。這是一個(gè)典型的多態(tài)性,相當(dāng)于:animal A=new dog();//這是一個(gè)向上的轉(zhuǎn)換A.phonenat
JAVA中A a = new B()什么意思?
A A=new b()實(shí)例化一個(gè)子類對(duì)象A。這是一個(gè)典型的多態(tài)性,相當(dāng)于:animal A=new dog();//這是一個(gè)向上的轉(zhuǎn)換A.phonenation()//對(duì)象A可以在animals中使用phonenation()或其他方法,但不能調(diào)用dog方法。A=new A()實(shí)例化父類的對(duì)象,動(dòng)物A=new dog();dog B=(dog)A;//這里是向下的轉(zhuǎn)換。此時(shí),B可以調(diào)用尚未重寫的animal類的方法,dog類的所有方法(包括重寫animal類的方法)和向上的轉(zhuǎn)換都將成功。它是安全的。就像說(shuō)狗是動(dòng)物一樣。沒問(wèn)題。但是通過(guò)B,如果調(diào)用animal或dog類中的任何方法,它都會(huì)報(bào)告異常,也就是說(shuō)向下轉(zhuǎn)換可能會(huì)出錯(cuò)。不能說(shuō)動(dòng)物是狗