Java繼承 隱藏(五)

2021-07-31 07:32:46 字數 1332 閱讀 1359

隱藏含義:實際上存在,但是對外不可見。

上文,我們描述了子類對父類方法的重寫,叫覆蓋(override),對子類而言,其實父類的方法隱藏了,但是依然存在的。我們可以測試一下:

package com.ws.basic;

class gameobject

public int life_reduce(int ai_reduce)

public int life_add(int ai_add) }

class creature extends gameobject

public void move()

public void normal_attack()

}class hero extends creature

// 重寫普通攻擊方法

public void normal_attack()

public void skill_attack()

public void eat_food(int food)

}public class testjc

}

結果:

**師甘道夫用火球攻擊!

**師在普通攻擊!

可見,重寫了子類的方法,父類的方法依然存在,深入理解這個問題,需要對記憶體分配非常清楚,下文再說。本節主要描述隱藏。

除了方法存在隱藏,變數同樣存在隱藏,簡而言之就是,子類中定義的成員變數和父類中定義的成員變數相同時,則父類中的成員變數被隱藏,直接看**:

package com.ws.basic;

class gameobject

public int life_reduce(int ai_reduce)

public int life_add(int ai_add) }

class creature extends gameobject

public void move()

public void normal_attack()

}class hero extends creature

public void skill_attack()

public void eat_food(int food)

}public class testjc

}

結果:
聖騎士甘道夫用暴風雪攻擊!

可見,如果hero定義了成員變數mc,再呼叫hero的方法的時候,父類的mc就隱藏了。當然和方法一樣,父類的mc依然存在的,只是對子類而言,不可見。簡而言之,就是各管各的。

Java自學 介面與繼承 隱藏

與重寫類似,方法的重寫是子類覆蓋父類的物件方法 隱藏,就是子類覆蓋父類的類方法 步驟 1 父類 父類有乙個類方法 battlewin package charactor public class hero 步驟 2 子類隱藏父類的類方法 package charactor public class ...

繼承 名字隱藏

include using namespace std peasant繼承自human,human繼承自cre 基類,生物類 class cre 析構函式 cre 成員函式 int gethp void sethp int hp int getdef int getact void move voi...

C 繼承之隱藏

什麼是隱藏 就是說在下面的這種情況下,父類的abc會在子類中進行隱藏,但是子類的確繼承了父類的abc函式 如果一定要使用父類中的abc,那麼必須進行特殊處理。執行結果 值得一提的是 如果父類與子類中的函式引數型別與個數不相同,也會發生隱藏現象,也就是說不會發生過載 必須使用這種寫法去呼叫父類隱藏的成...