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