Java面向对象之继承

概念

继承是Java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承是面向对象的三大特征之一。继承和现实生活中的“继承”的相似之处是保留一些父辈的特性,从而减少代码冗余,提高程序行效率。

extend关键字

extend本意为”扩展“------> 子类extend父类,描述的是子类在父类基础上进行拓展。

 //classA为父类,classB为子类
 class A {
 }
 class B extends A {
 }
 class C extends B{
 }
 /*当出现classC类,此时classA称为超类或基类,classB类和classC类都是它的派生类*/
 /*画图表示关系:classA <--- classB <--- classC【箭头永远指向父类】*/

注意:不是只要分析出具备相同属性行为,我们就做继承,必须具备类与类之间有is-a关系,我们才会去做继承

单继承

Java中的继承是单继承【在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。】

单继承和多继承的优缺

多继承 优:丰富度的增加,子类既有来自父类A的内容,也有来自于父类B的内容,甚至还有父类

缺:会带来关系复杂度的问题。比如在结构上多继承不可能避免的都会出现网状结构

单继承 优:没有关系复杂度的问题,类与类之间只能形成层次结构清晰的树形图

缺:丰富度会减少

继承细节

父类的哪些内容会被继承

1、父类中的属性会被继承;就算是私有属性也会被继承,只是不能被看到而已.

【访问修饰符控制的是是否能够被直接看到操作到,而不是是否能被继承】

2、父类中的行为也会被继承,与属性是一样的道理。

3、父类的构造方法是不能被子类继承的。

【原因:1、构造方法的名字必须和类名保持一致;{父类的构造方法是父类类名,子类的构造方法是子类类名}。如果构造方法能被继承,那么说名字类里面有一个构造方法,但名字是父类,很明显语法不允许 2、构造方法的作用是产生对象;{父类构造方法产生父类对象,子类构造方法产生子类对象}。如果子类通过继承拥有了父类的构造方法,那么说明子类拥有一个产生父类的方法,伦理不允许】

继承的内存模型

JVM是采用一种或叫做”内存叠加“的方式,来实现继承关系。

当我们产生一个子类对象的时候,JVM是分两步走的:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值