課程
/后端開發
/Java
/Java入門第二季 升級版
如圖所示
在main()中。shape1能使用成員函數進行賦值。
而在Circle中,成員函數和成員變量定義在了Circle中。就在main()方法中調用不了。
請問這是為什么?
2016-10-19
源自:Java入門第二季 升級版 10-3
正在回答
恩沒事
不是,你在main函數里面創建對象時是小轉大了,即你在創建Circle對象時是Shape shape2=new Circle();這樣的話,用戶在調用子類對象方法時只能調用子類繼承父類或者子類重寫父類的方法,而你寫的這個父類剛好是一個抽象類,則子類對象調用方法時只能調用父類的抽象方法,其他方法已經屏蔽了。個人認為與接口沒有特別大的關系。
Shape?rt=new?Rectangle(3.0f,4.0f); rt.Area(3.0f,?4.0f); rt.Circumference(3.0f,?4.0f); Circle?cl=new?Circle(5.0f,?3.14f); cl.Area(5.0f,?3.14f); cl.Circumference(5.0f,?3.14f); cl.shuchu();
這是我寫的主函數的一部分,其中shuchu()函數是子類自己獨有的。編譯沒報錯。
benyl123
慕田峪7021683 提問者
ViktorZ
benyl123 回復 ViktorZ
ViktorZ 回復 benyl123
接口對象指向引用對象只可以調用引用對象實現的接口方法,不能調用引用對象自己的方法。
我是這樣理解的。
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
4 回答請問如何用抽象類繼承抽象類
2 回答調試類不用繼承抽象類嗎?
3 回答大佬幫幫忙(定義一個抽象類然后用一個子類去繼承該抽象類,抽象類之中繼承的方法總是提示錯誤是什么原因)
2 回答為什么子類不繼承抽象父類的普通類?
6 回答抽象類不是不可以被繼承嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-01
恩沒事
2016-10-31
不是,你在main函數里面創建對象時是小轉大了,即你在創建Circle對象時是Shape shape2=new Circle();這樣的話,用戶在調用子類對象方法時只能調用子類繼承父類或者子類重寫父類的方法,而你寫的這個父類剛好是一個抽象類,則子類對象調用方法時只能調用父類的抽象方法,其他方法已經屏蔽了。個人認為與接口沒有特別大的關系。
這是我寫的主函數的一部分,其中shuchu()函數是子類自己獨有的。編譯沒報錯。
2016-10-19
接口對象指向引用對象只可以調用引用對象實現的接口方法,不能調用引用對象自己的方法。
我是這樣理解的。