继承 (计算机科学)
继承 (计算机科学)
继承()是面向对象软件技术当中的一个概念。如果一个类别B「继承自」另一个类别A,就把这个B称为「A的子类」,而把A称为「B的父类别」也可以称「A是B的超类」。继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类追加新的属性和方法也是常见的做法。
一般静态的物件导向程式语言,继承属于静态的,意即在子类别的行为在编译期就已经决定,无法在执行期扩充。
有些编程语言支持多重继承,即一个子类可以同时有多个父类别,比如C++编程语言;而在有些编程语言中,一个子类只能继承自一个父类别,比如Java编程语言,这时可以透过实作接口来实现与多重继承相似的效果。
现今物件导向程式设计技巧中,继承并非以继承类别的「行为」为主,而是继承类别的「型态」,使得元件的型态一致。另外在设计模式中提到一个守则,「多用合成,少用继承」,此守则也是用来处理继承无法在执行期动态扩充行为的遗憾。