一個物件的類決定了它會如何被一個 泛型函數處理。相反,一個泛型函數 通過參數類的特異參數來完成特定工作或者事務的。 如果參數缺乏任何類屬性, 或者在該問題中有一個不能被任何泛型函數處理的類, 泛型函數會有一種默認的處理方式。
下面的一個例子使這個問題清晰。類機制為用戶提供了為特定問題設計和編寫
泛型函數的便利。
在其他泛型函數中,plot() 用於圖形化顯示
物件,summary() 用於各種類型的概述分析,
以及 anova() 用於比較
統計模型。
能以特定方式處理類的泛型函數的數目非常的龐大。
例如,可以在非常時髦的類物件
"data.frame" 中使用的函數有
[ [[<- any as.matrix
[<- mean plot summary
可以用函數 methods() 得到當前對某個類物件
可用的泛型函數列表:
> methods(class="data.frame")
相反,一個泛型函數可以處理的類同樣很多。
例如,plot() 有默認的方法和變數
處理物件類 "data.frame",
"density","factor",等等。一個完整的列表同樣可以通過
函數 methods() 得到:
> methods(plot)
讀者可以參考 完整描述這一機制的正式文檔。