继承,是java的三大特点之一 其中用到了一个新的关键字 extends
什么叫继承呢?其实就是,先有一个父类,然后有一个子类,继承父类之后就拥有了父类中全部的属性
那父类是怎么来的呢?
其实就是那些子类中的那些共性不断向上抽取,所有的这些的特性,组成了父类
父类又要超类,基类
java中,是不支持多继承的,即不能一个子类同时继承多个父类,因为:如果那些父类中存在相同功能时,子类对象不确定运行哪一个,这样会带来安全隐患
但是java中支持多层继承和多实现
继承的好处:提高了代码的复用性;让子类与父类之间产生了一种关系,才有了多态(java的三大特性之一)的特性
怎样建立继承体系呢?
其实在继承体系中,最先存在的是父类,而继承体系的建立,其实就是先了解体系中父类的功能,然后在根据自己需要的功能建立子类
当有了继承体系后,类中的成员会发生什么变化呢?
对于成员变量:如果子父类中出现了同名的非私有变量,那么在使用时,如果使用子类中的变量,要在变量前面加this,如果要使用父类中的变量,则要加super(这是另外一个关键字)
对于成员函数:当子父类中出现同名的函数时,其实这是继承体系中函数的另外一个特性:重写
什么叫重写呢?其实就是当子类继承父类以后,子类会沿袭父类中的非私有功能,如果子类中出现了和父类功能相同,但是内容不完全相同的函数时,这时就不需要再定义其他函数了,只需要定义一个重名函数,改写里面的内容就行。
但是需要注意的是,子类中不能出现和父类重名但是返回类型不同的函数,这样会出现安全隐患
此外还需要注意两点:
1:子类复写父类中的函数时,权限必须大于等于父类的权限
2:静态只能复写静态
再提一下复写和重载的区别:
重载:是同名函数只区别参数列表
复写:同名函数连返回类型都要一样