Aniaml animal = dog;這句怎么理解啊?
Aniaml?animal?=?dog;這句怎么理解啊?
Aniaml?animal?=new Animal();意思是創(chuàng)建Animal對象,這邊寫=dog,是創(chuàng)建了一個Dog類對象animal?還是把之前
Dog dog=new Dog();這里的dog轉(zhuǎn)成Animal類型了。
Aniaml?animal?=?dog;這句怎么理解啊?
Aniaml?animal?=new Animal();意思是創(chuàng)建Animal對象,這邊寫=dog,是創(chuàng)建了一個Dog類對象animal?還是把之前
Dog dog=new Dog();這里的dog轉(zhuǎn)成Animal類型了。
2018-09-29
舉報
2018-09-30
父類持有子類的引用。簡單點講animal對象與dog對象持有相同方法say()時,假定Animal的say方法是打印字符串“a",后者是“doger"。當(dāng)你用 Aniaml?animal?=?dog? 之后(?向上轉(zhuǎn)型)。調(diào)用animal對象的say方法,輸出的內(nèi)容是doger 字符串,而非是a。
2018-09-30
前一句不是Dog dog = new Dog();意思就是創(chuàng)建了一個dog對象,類型是Dog,用一個子類的引用dog指向子類對象,然后Animal animal = dog;這個就是用一個父類的引用animal指向這個子類對象dog,是Animal類型的(因為是類是對象的類型),就是由Dog類型轉(zhuǎn)換為Animal類型,又因為Dog是Animal的子類,所以是向上轉(zhuǎn)換。不知道你能理解我說的意思嗎。。。我表達(dá)的可能不是很清楚,但大致就是這個意思,手打不易啊望采納。不懂可以追問。
2018-09-29
先看上面一句先創(chuàng)建了dog對象,記住是dog對象,已經(jīng)有了一只狗對象,下面animal=dog這句你可以這么理解—狗是動物,向上轉(zhuǎn)換就是這樣,向下轉(zhuǎn)換你可以這樣說—dog=animal動物是狗,是不是覺得有問題!但這里創(chuàng)建對象是狗,向下有了一個對象,向下轉(zhuǎn)換的時候可以這么理解—dog=(Dog)animal這個動物是狗,那就沒問題了。后面說貓為什么不行,cat=(Cat)animal這個動物是貓。但是你創(chuàng)建的對象是狗,所以不對!