Java三大特性-继承

前言

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

什么是继承

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

解释一下:

继承所描述的是“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三大特性-继承)