有些時候一些方法在很多類別實作很類似
重複的程式碼增加了撰寫的時間
同時在更改之後也需要同步更改
繼承可以將父類別的屬性繼承給子類別
子類別可以使用父類別的方法
子類別也可以使用父類別的類別變數
在Ruby中可以限制實體方法的可見度
public到處都可以呼叫
private只能在接收者為self且不指定接收者時呼叫
protected只能在該類或子類呼叫
實體方法以及類別方法都會被繼承下來
子類別的方法會優先於父類別的方法
同時方法的存取限制一樣繼承下來
當定義了父類別已有的同名方法
可以使用super呼叫父類別的該方法
但是要注意呼叫不要省略小括號
因為各個類別有自己的實體變數
繼承不會把變數給子類別
但是類別變數會繼承下去
class Parent
@class_inst_var = 100
@@class_var = 200
def self.output
p @class_inst_var
p @class_var
end
end
class Child < Parent
end
Unit > Tower
> Actor > Rat
> Cat > Kitten
> SpearCat
> UFOCat
因為重用程式碼所以省下很多行數
就算有點不一樣還是可以繼續用