继承 (计算机科学)

维基百科,自由的百科全书
跳转至: 导航搜索

继承(Inheritance)是面向对象软件技术当中的一个概念。如果一个类別A「继承自」另一个类別B,就把这个A称为「B的子类別」,而把B称为「A的父类別」也可以称「B是A的超类」。继承可以使得子类別具有父类別的各种属性和方法,而不需要再次编写相同的代码。在令子类別继承父类別的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类別的原有属性和方法,使其获得与父类別不同的功能。另外,为子类別追加新的属性和方法也是常见的做法。 一般靜態的物件導向程式語言,繼承屬於靜態的,意即在子類別的行為在編譯期就已經決定,無法在執行期擴充。

有些编程语言支持多重继承,即一个子类別可以同时有多个父类別,比如C++编程语言;而在有些编程语言中,一个子类別只能继承自一个父类別,比如Java编程语言,这时可以利用接口来实现与多重继承相似的效果。

現今物件導向程式設計技巧中,繼承並非以繼承類別的「行為」為主,而是繼承類別的「型態」,使得元件的型態一致。另外在設計模式中提到一個守則,「多用合成,少用繼承」,此守則也是用來處理繼承無法在執行期動態擴充行為的遺憾。