av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - 子類(lèi)重寫(xiě)的方法和父類(lèi)重寫(xiě)的方法,兩個(gè)之間的調(diào)用

瀏覽:116日期:2024-02-01 17:18:36

問(wèn)題描述

1.當(dāng)子類(lèi)對(duì)象調(diào)用重寫(xiě)的方法時(shí),調(diào)用的是子類(lèi)的方法,而不是父類(lèi)中被重寫(xiě)的方法。要想調(diào)用父類(lèi)中被重寫(xiě)的方法,則必須使用關(guān)鍵字super。這句話該怎么理解呢?子類(lèi)對(duì)象調(diào)用重寫(xiě)方法,

public class Test { public static void main(String[] args) { show(new Cat()); // 以 Cat 對(duì)象調(diào)用 show 方法 show(new Dog()); // 以 Dog 對(duì)象調(diào)用 show 方法 Animal a = new Cat(); // 向上轉(zhuǎn)型a.eat(); // 調(diào)用的是 Cat 的 eat Cat c = (Cat)a;// 向下轉(zhuǎn)型c.work();// 調(diào)用的是 Cat 的 catchMouse } public static void show(Animal a) { a.eat(); // 類(lèi)型判斷if (a instanceof Cat) { // 貓做的事情 Cat c = (Cat)a; c.work(); } else if (a instanceof Dog) { // 狗做的事情 Dog c = (Dog)a; c.work(); } } } abstract class Animal { abstract void eat(); } class Cat extends Animal { public void eat() { System.out.println('吃魚(yú)'); } public void work() { System.out.println('抓老鼠'); } } class Dog extends Animal { public void eat() { System.out.println('吃骨頭'); } public void work() { System.out.println('看家'); } }這里的子對(duì)象cat和dog,調(diào)用的都是父類(lèi)的eat。怎么說(shuō)“當(dāng)子類(lèi)對(duì)象調(diào)用重寫(xiě)的方法時(shí),調(diào)用的是子類(lèi)的方法,而不是父類(lèi)中被重寫(xiě)的方法”?這話怎么理解呢?要想調(diào)用父類(lèi)中被重寫(xiě)的方法,則必須使用關(guān)鍵字super

問(wèn)題解答

回答1:

你這個(gè)例子并沒(méi)有使用super 建議 將父類(lèi)的eat方法實(shí)現(xiàn)一下 再在子類(lèi) 里 使用super.eat();

“當(dāng)子類(lèi)對(duì)象調(diào)用重寫(xiě)的方法時(shí),調(diào)用的是子類(lèi)的方法,而不是父類(lèi)中被重寫(xiě)的方法” 多態(tài) 應(yīng)該知道吧. 父類(lèi)的引用 指向子類(lèi)的實(shí)例. 因?yàn)樽罱K實(shí)例的是子類(lèi) 所以 調(diào)用 的就是子類(lèi) 的方法.

但是這時(shí) 我想調(diào)用 父類(lèi)的 那個(gè)方法(eat) 怎么辦, 這時(shí)就用super 2.super 的使用例如 :

public class Test1 {public static void main(String[] args) { show(new Cat()); // 以 Cat 對(duì)象調(diào)用 show 方法 show(new Dog()); // 以 Dog 對(duì)象調(diào)用 show 方法 Animal a = new Cat(); // 向上轉(zhuǎn)型 a.eat(); // 調(diào)用的是 Cat 的 eat Cat c = (Cat)a;// 向下轉(zhuǎn)型 c.work();// 調(diào)用的是 Cat 的 catchMouse}public static void show(Animal a) { a.eat(); // 類(lèi)型判斷 if (a instanceof Cat) { // 貓做的事情Cat c = (Cat)a;c.work(); } else if (a instanceof Dog) { // 狗做的事情Dog c = (Dog)a;c.work(); }} } abstract class Animal {** void eat(){ System.out.println('父類(lèi)eat...'); } } class Cat extends Animal {public void eat() { **super.eat(); System.out.println('吃魚(yú)');}public void work() { System.out.println('抓老鼠');} } class Dog extends Animal {public void eat() { System.out.println('吃骨頭');}public void work() { System.out.println('看家');} } 輸出 結(jié)果

父類(lèi)eat...吃魚(yú)抓老鼠吃骨頭看家父類(lèi)eat...吃魚(yú)抓老鼠

標(biāo)簽: java
主站蜘蛛池模板: 色综合视频 | 一区二区三区免费 | av在线一区二区三区 | 欧美中文字幕一区 | 欧美一区二区小视频 | 婷婷不卡 | 欧美日韩电影一区 | 亚洲国产成人精品女人久久久 | 亚洲欧美成人 | 久久久久久综合 | 亚洲免费网 | 91p在线观看 | 天天操,夜夜爽 | 一区二区免费 | 日韩中文一区二区 | 久色一区 | 久久福利| 成人小视频在线观看 | 亚洲午夜一区二区 | 亚洲三区在线观看 | 国产精品1区2区 | 电影午夜精品一区二区三区 | 成人影院在线视频 | 精品中文字幕一区 | 欧美专区在线 | 国产精品永久免费 | 亚洲精品一区二区三区蜜桃久 | 国产欧美一区二区三区在线看 | 四虎在线观看 | 天天射天天操天天干 | www精品美女久久久tv | 伦理午夜电影免费观看 | 亚洲精品视频免费观看 | 中文字幕日韩欧美一区二区三区 | 91在线资源| 欧美日韩不卡合集视频 | 综合亚洲视频 | 国产综合在线视频 | 日本午夜在线视频 | 久久久久久久久中文字幕 | 欧美中文字幕一区 |