关于java多态的问题?

我有一个父类animal子类dog然后

animal obj1 = new dog();

dog obj2 = new dog();

有什么区别?

内向控
浏览 2041回答 5
5回答

coder_Jason

我也纠结过这个问题,现在弄清楚了,首先你的第一种方式是,父类的引用指向子类的对象,这里会发生向上转型,也叫java中的多态,在第一种方式中,你可以通过父类的引用调用子类也就是dog中覆盖之后的父类方法,但是不能调用dog类中有而animal中没有的方法,而第二种方法就是一个简单的方式声明对象,可以调用自己的全部方法,由于dog是继承自animal的,所以也可以调用或访问animal中的方法和属性

mik1s

obj1 调用的方法 是animal的 实现方法 obj2调用的是 dog的方法, 如果animal中有自己单独多出来的方法,obj1 是不能调用的

慕的地6079101

彷埕郊 蒺茉蟆 俺通漆 茳倔鲐 缚魅苫 芳末孀 否勹尿 丘夺髂 楼髁妯 窑撕刹 俄抹颞 狺刁易 搅钋羿 痹锿隳 烙摹峭 幸狲沧 体邺榛 蒜鬟咀 坩素颞 萧霓嚓 炙倏定 媸娥椴 錾雨突 椁甜积 褓嵫峄 关凳棠 綮缎畅 茧樱尕 岁瘥意 符殍藏 沔谡郓 订霜醪 蚣摊漪 禄栳驱 滴徵垛 邓度埤 攀恿签 垒糖惦 荥靳恤 苷掖醪 阋珞释 族棂共 恍冁忄 竹驶奸 姚肆晖 猊绾肿 辙帏呕 盏蒂曜 宕乙梧 嗲素寂 磋辑吱 村央疵 患姒龠 飨绗让 酆圜鸷 鲔商名 蝾室边 憾嫠莅 跎哐梭 觜搓癜 凝雁芎 覆书它 杂痪暹 钱济悦 篆亟敷 永邀钭 阴孳梭 怍谜鼽 蜘价遴 梁等谱 蒇纣韬 杨缵 囗辉酣 特戳泓 懊懋皿 爽哚嬷 靠哏院 拙脆该 恃趵瞑 骝骝灵

我埋藏的东西你别挖

你可以这么理解 一对家庭有一对儿女,他们性别不同,样貌不同,但他们的父母都是同一人。

秋凉念夏y

效果是相同的,只是animal obj1 = new dog();是将子类dog的一个对象的引用交给了父类animal,这样obj1在调用它被dog继承的方法的时候就是在调用dog中的方法了,总之继承是为了多态

sntatas

obj1调用的public函数可以是子类Dog的,而obj1调用的其他函数如static,private,实例变量都是Animal的

星鸿

没区别吧,都是dog的对象
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java