继承 是面向对象软体技术当中的一个概念,与多态、封装共为面向对象的三个基本特徵。 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
基本介绍
- 中文名:继承
- 外文名:inheritance
概念
继承(英语:inheritance)是面向对象软体技术当中的一个概念。如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”。继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。 一般静态的面向对象程式语言,继承属于静态的,意即在子类别的行为在编译期就已经决定,无法在执行期扩充。
那幺如何使用继承呢?用extends关键字来继承父类。
如上面A类与B类,当写继承语句时, class A类 extends B类{ } 其中A类是子类,B类是父类。
注意
1、子类拥有父类得特徵,而父类没有,父类更通用,子类更具体,(特徵包括属性和方法,自身的特性,拥有父类没有的)
2、使用extends继承父类,语句格式:class 子类名 extends 父类名{}
3、父类中一般只定义一般属性和方法(这个一般可以理解为是子类共有的,这就是父类更通用,而子类拥有其他的,所以子类更具体)
4、子类中通过super关键字来调用父构造方法
5、在子类中可以继承父类得那些东西,哪些不可以继承
父类中public,protected修饰的属性,方法可以继承,private修饰的属性和方法不能被继承
6、规则: 创建子类对象的时候,首先调用的是父类的无参构造方法创建一个父类对象
7、可以在子类中显示调用父类的有参构造方法
8、如果父类的属性均为private修饰,则可以通过共有的getter,setter方法来调用
2、使用extends继承父类,语句格式:class 子类名 extends 父类名{}
3、父类中一般只定义一般属性和方法(这个一般可以理解为是子类共有的,这就是父类更通用,而子类拥有其他的,所以子类更具体)
4、子类中通过super关键字来调用父构造方法
5、在子类中可以继承父类得那些东西,哪些不可以继承
父类中public,protected修饰的属性,方法可以继承,private修饰的属性和方法不能被继承
6、规则: 创建子类对象的时候,首先调用的是父类的无参构造方法创建一个父类对象
7、可以在子类中显示调用父类的有参构造方法
8、如果父类的属性均为private修饰,则可以通过共有的getter,setter方法来调用
有些程式语言支持多重继承,即一个子类别可以同时有多个父类别,比如C++程式语言;而在有些程式语言中,一个子类别只能继承自一个父类别,比如Java程式语言,这时可以利用接口来实现与多重继承相似的效果。
现今面向对象程式设计技巧中,继承并非以继承类别的“行为”为主,而是继承类别的“型态”,使得元件的型态一致。另外在设计模式中提到一个守则,“多用合成,少用继承”,此守则也是用来处理继承无法在执行期动态扩充行为的遗憾。