类别关系.pdf
文本预览下载声明
類別關係
延伸與繼承
利用關鍵字extends宣告子類別
由super class 繼承變數與方法
單一繼承,Only
class Mammal extends Animal
class Animal{
{
float weight;
int heartRate;
void eat() {
// 繼承weight
}
void breathe(){ }
};
// 繼承eat()
};
延伸與繼承
class Cat extends Mammal {
Animal
{
boolean longHair;
// 繼承weight 與 heartRate Mamal
void purr() { …}
// 繼承eat() 與 breate() Cat
};
類別繼承關係
子類別可視為super類別的子型態
故
貓也是一種動物
Cat simon=new Cat();
Animal creature=simon Purr:
變數的遮蔽
子類別把上層繼承來的同一變數蓋過去
由所在的範圍決定 class Animal
繼承範圍 floatweight
不是代換! class Mammal
實體範圍 floatweight;
自己的區域)
food(){
.weight (實體範圍) floatweight;
區域範圍
.weight (超類別範圍) weight= … ; ?
}
方法覆寫(method override)1/2
定義與super類別完全一樣的method
class Animal Cat Simon
eat () eat ()
sleep()
reproduce() sleep()
class Mammal
reproduce
显示全部