美文网首页
Java三大特性-继承

Java三大特性-继承

作者: 面试精 | 来源:发表于2018-07-17 23:11 被阅读0次

    前言

    之前文章提到了,三大特性面试官问的最多的一般是多态,所以对于继承我们也不过多的赘述;

    什么是继承

    继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

    解释一下:

    继承所描述的是“is-a”的关系,如果有两个对象A和B,若可以描述为“A是B”,则可以表示A继承B,其中B是被继承者称之为父类或者超类,A是继承者称之为子类或者派生类。

    引用think in java 中的例子:

    意味着圆形也是一种图形,表述了is-a的关系;特点是导出类与基类具有相同的类型

    虽说导出类与基类具有相同的类型,但导出类可以有自己的实现,以区分出不同于基类的行为;

    有两种方式可以使基类与导出类产生差异。

    1)直接在导出类中添加新的方法(这些新的方法并不是导出类的一部分)。

    2)改变现有基类的方法和行为-覆盖

    可以看出,子类(导出类)复写父类方法或者子类中新添加方法都会使其与基类产生差异,同样子类具有和基类相同的类型

    继承的特点

    1)子类拥有父类的非private属性和方法

    2)子类可以通过两种方式区分和父类的差异(即上述两种),也就是说子类具有一定的扩展性

    3)java只允许单继承,即子类只能继承一个父类

    继承的缺点

    1.父类变,子类就跟着变;因为子类具有与父类相同的类型,所以这个地方有一种牵一发而动全身的感觉

    2.继承和封装是一种悖论,可以说继承破坏了封装,因为继承使得父类的方法和属性对子类是透明的,安全性不高

    3.继承是一种强耦合关系

    再此继承就不多做赘述了;

    如果想详细了解继承,可参见:

    http://www.cnblogs.com/chenssy/p/3354884.html

    写的比较详细;

    关于面试

    面试的话继承一般会问:

    什么是继承;

    继承的特点;

    什么情况下使用继承;

    前两个的话上面已经赘述,关于第三点:当需要用到向上转型,即子类到父类的向上转型,可考虑用继承,非这种情况下,慎用继承;

    关于向上转型,会在下节为大家讲到;

        写的有不对的地方还请大家指出,我们会第一时间更正, 您的支持是我们努力的更新的动力源泉,欢迎大家将面试过程中遇到的问题发给我们,我们会第一时间整理更新,希望能帮忙更多正在找工作的朋友;

    相关文章

      网友评论

          本文标题:Java三大特性-继承

          本文链接:https://www.haomeiwen.com/subject/ljhipftx.html