Java之继承概述

版权声明:转载请注明出处 https://blog.csdn.net/qq_41431457/article/details/85385580

  •      前言

        利用继承可以很好地实现代码重用问题。在利用已有的类构造新类时,新类保留已有类的属性和行为,并可以根据要求添加新的属性和行为。例如,卡车具有一般汽车的属性,而特有的届性就是载货。曾经介绍过类之间的关系:“USES-A”关系、“HASA”关系、“IS-A”关系。其中,“IS-A”关系是继承的一个特征。


  • 超类、子类

       被继承的类一般称为“超类”或“父类”,继承的类称为“子类”。当子类继承超类时,不必写出全部的实例变量和方法,只需声明该类继承了的已定义的超类的实例变量和方法即可。超类子类是继承中非常重要的概念,它们形象地描述了继承的层次关系。

       继承节省了定义新类的大量工作,可以方便地重用代码。例如,把汽车作为父类,当创建汽车的子类轿车时,品牌、价格、最高时速等属性会自动地被定义,调用刹车方法时会自动调用在汽车类中定义的刹车方法。但一个子类不必非要使用继承下来的属性和方法,一个子类可以选择覆盖已有的属性和方法,或添加新的属性和方法。

        由继承产生的子类比超类具有更多的特征,因此有时很容易混消二者的概念。通常情况下每个子类的对象 “is” 它的超类的对象。一个超类可以有很多个子类,所以超类的集合通常比它的任何一个子类集合都大。例如交通工具包含飞机、汽车、自行车等,而汽车子类只是交通工具中的一个小子集。


  • 继承的层次

       继承关系可以用树性层次表达出来,注意,汽车类定义了品牌、价格、时速等属性,以及刹车、启动等方法。当定义继承汽车类的子类卡车时,它自动继承汽车类的属性和方法。

        继承只是代码重用的一种方式,滥用继承会造成很严重的后果。只有需要向新类中添加新的操作,并且把已存在类的默认行为融合进新类中,才需要继承已存在的类。

猜你喜欢

转载自blog.csdn.net/qq_41431457/article/details/85385580