ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java面向对象——继承

2022-01-05 14:40:22  阅读:92  来源: 互联网

标签:Java 继承 子类 构造 方法 面向对象 父类 重写


Java面向对象——继承

继承

  1. 什么时继承,继承的好处
    1. 继承是子类到父类的一种关系
    2. 提高代码复用性,减少代码冗余,增强类的功能
  2. 继承的格式
    1. 子类 extends 父类
  3. 继承后子类的特点
    1. 子类继承父类,子类可以得到弗雷德属性和行为,子类可以使用
    2. Java中子类更强大
  4. 继承设计规范
    1. 子类们相同特征(共性属性,共性方法)放在父类中定义,子类独有的属性和行为应该定义在子类自己里面。
    2. 如果子类的都有属性、行为定义在父类中,会导致其它子类也会得到这些属性和行为,这不符合面向对象的逻辑
  5. 继承的特点
    1. 子类可以继承费雷的属性和行为,但是子类不能继承父类的构造器
    2. Java是单继承模式:一个类只能继承一个直接父类
    3. Java不支持多继承,但是支持多层继承
    4. Java中所有的类都是object类的子类
  6. 子类是否可以继承父类的静态成员?
    1. 有争议的知识点。
    2. 子类可以直接使用父类的静态成员(共享)。
    3. 子类不能继承父类的静态成员(共享并非继承)
  7. 在子类方法中访问成员(成员变量,成员方法)满足:就近原则
    1. 先子类局部范围找
    2. 然后子类成员范围找
    3. 然后父类成员范围找,如果父类范围还没有找到就报错
  8. 什么是方法重写?
    1. 在继承体系中,子类出现了和父类一模一样的方法声明,我们就称子类这个方法是重写的方法
  9. 方法重写的应用场景
    1. 当子类需要弗雷德功能时,但父类的该功能不能完全满足自己的需求
    2. 子类可以重写父类中的方法
  10. @Override重写注解
    1. @Override时放在重写后的方法上,作为重写是否正确的校验注解
    2. 加上该注解后如果重写错误,编译阶段会出现错误提示
    3. 建议重写方法都加上@Override注解,代码安全,优雅
  11. 方法重写注意事项和要求
    1. 重写方法的名称、形参列表必须与被重写方法的名称和形参列表一致
    2. 私有方法不能被重写
    3. 子类重写父类方法时,访问权限必须大于或者等于父类(缺省<protected<public)
    4. 子类不能重写父类的静态方法,如果重写会报错。
  12. 子类继承父类后构造器的特点
    1. 子类中所有的构造器默认都会先访问父类中无参的构造器,再执行自己
  13. 为什么?
    1. 子类在初始化的时候,有可能会使用父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据
    2. 子类初始化之前,一定要调用父类构造器先完成父类数据空间的初始化
  14. 小知识
    1. super调用父类有参构造器的作用
      1. 初始化继承自父类的数据
    2. 如果父类中没有无参构造器,只有有参构造器,会出现什么现象?
      1. 会报错,因为子类默认是调用父类的无参构造器的。
    3. 如何解决
      1. 子类构造器中可以通过书写super(),手动调用父类的有参构造器
  15. this()和super()使用注意点:
    1. 子类通过this()去调用本类的其他构造器,本类其他构造器会通过super去调用父类的构造器,最终还是会调用父类构造器
    2. 注意:this()和super()都只能放在构造器的第一行,所以二者不能共存在同一个构造器中。

标签:Java,继承,子类,构造,方法,面向对象,父类,重写
来源: https://blog.csdn.net/weixin_43760048/article/details/122322603

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有