Java基础(1) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

java的继承与覆盖基本是java笔试中常出的题,也比较绕,我这里对java的继承覆盖做一个总结
1.构造函数:
        当子类继承一个父类时,构造子类时需要调用父类的构造函数,存在三种情况
        (1),父类无构造函数或者一个无参数构造函数,子类若无构造函数或者有无参数构造函数,子类构造函数中不需要显式调用父类的构造函数,系统会自动在调用子类构造函数前调用父类的构造函数
         (2),父类只有有参数构造函数,子类在构造方法中必须要显示调用父类的构造函数,否则编译出错
         (3),父类既有无参数构造函数,也有有参构造函数,子类可以不在构造方法中调用父类的构造函数,这时使用的是父类的无参数构造函数
           //以上三个结论已经过代码验证
2.方法覆盖:
          (1)子类覆盖父类的方法,必须有同样的参数返回类型,否则编译不能通过
          (2)子类覆盖父类的方法,在jdk1.5后,参数返回类可以是父类方法返回类的子类
         (3)子类覆盖父类方法,可以修改方法作用域修饰符,但只能把方法的作用域放大,而不能把public修改为private
          (4)子类方法能够访问父类的protected作用域成员,不能够访问默认的作用域成员
         (5)子类的静态方法不能隐藏同名的父类实例方法
         (6)java与C++一样,继承的方法具有多态性
         //以上6个结论已经过代码验证
3.成员覆盖:
         (1)当子类覆盖父类的成员变量时,父类方法使用的是父类的成员变量,子类方法使用的是子类的成员变量
          这个听起来很容易理解的一回事,但是实际使用过程中很多人容易搞混:尤其是在多态的时候,调用一个被继承的方法,该方法访问是一个被覆盖的成员m,那么方法中到底是访问了父类的成员还是子类的成员m?结论是,若实际调用的是父类的方法,就使用了父类的该成员m,若实际调用的是子类的方法,就使用子类的成员m,记住一句,每个类使用成员都相当于在前面加了 一个this指针。
         //以上1个结论已经过代码验证

我在论坛上看到下面例子,理解上面,你就能够很好得出答案了:

[c-sharp] view plain copy
  1. class SuperClass {
  2. private int number;
  3. public SuperClass() {
  4. this.number = 0;
  5. }
  6. public SuperClass(int number) {
  7. this.number = number;
  8. }
  9. public int getNumber() {
  10. number++;
  11. return number;
  12. }
  13. }
  14. class SubClass1 extends SuperClass {
  15. public SubClass1(int number) {
  16. super(number);
  17. }
  18. }
  19. class SubClass2 extends SuperClass {
  20. private int number;
  21. public SubClass2(int number) {
  22. super(number);
  23. }
  24. }
  25. public class SubClass extends SuperClass {
  26. private int number;
  27. public SubClass(int number) {
  28. super(number);
  29. }
  30. public int getNumber() {
  31. number++;
  32. return number;
  33. }
  34. public static void main(String[] args) {
  35. SuperClass s = new SubClass(20);
  36. SuperClass s1 = new SubClass1(20);
  37. SuperClass s2 = new SubClass2(20);
  38. System.out.println(s.getNumber());
  39. System.out.println(s1.getNumber());
  40. System.out.println(s2.getNumber());
  41. //结论一:多态时,当子类覆盖了父类的方法,使用子类覆盖的方法
  42. //结论二:当子类覆盖父类的成员变量时,父类方法使用的是父类的成员变量,子类方法使用的是子类的成员变量
  43. }
  44. }

执行输出:

1
21
21

转载于:https://www.cnblogs.com/ziq711/p/5372474.html

java继承覆盖总结相关推荐

  1. java实例变量可以被覆盖吗_Java继承覆盖实例变量

    参见英文答案 > Java Inheritance – instance variables overriding                                    3个 我 ...

  2. Java继承时构造函数的关系

    Java继承时构造函数的关系,先来一道笔试题给大家看看: 在继承中,关于构造方法的说明,下列说法错误的是() A.子类无条件的继承父类的无参构造方法, B.子类可以引用父类中的有参构造方法,使用sup ...

  3. 「万字图文」史上最姨母级Java继承详解

    原创公众号:「bigsai」 除公众号以外拒绝任意擅自转载 文章收录在bigsai公众号和回车课堂 课程导学 在Java课堂中,所有老师不得不提到面向对象(Object Oriented),而在谈到面 ...

  4. Java继承个人的理解_我对java继承的理解

    关于java继承和多态的文章已经很多了,如果你对java的继承和多态已经有很好的理解,请绕过本变文章, 如果你对java的继承和多态不是很理解,还在找寻这方面的东西,那这篇文章可能对你有所帮助. 首先 ...

  5. Java继承、重写与重载 笔记

    1. Java继承 继承要符合的关系是:is-a,父类更通用,子类更具体. 1.1 继承的特性 子类拥有父类非private的属性,方法. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展. 子 ...

  6. java继承方法规则或规律

       方法的继承与属性的继承有很大的不同,属性任何继承方式均可,而方法则有各种限制,于是动力节点Java培训机构小编在这里做了一个简单的总结. 1.修饰符相同的方法覆盖,即只改内部,不改外部 2.访问 ...

  7. java_basic_review(5) java继承

    [0]README 1)本文主要对 java 继承的一些 重点知识进行复习: 2)for source code, please visit java_basic_review(5)源代码 3) pr ...

  8. ejb java_EJB继承与Java继承不同

    ejb java 尽管EJB继承有时使用Java继承,但事实并非总是如此. 就像您在我以前的文章中可以读到的那样 ,EJB不必实现任何接口即可公开业务接口. 反之亦然-仅仅是因为EJB实现了某个接口或 ...

  9. EJB继承与Java继承不同

    尽管EJB继承有时使用Java继承,但它们并不总是相同的. 就像您在我以前的文章中可以读到的那样 ,EJB不必实现任何接口即可公开业务接口. 另一种方法也是正确的-仅仅是因为EJB实现了某个接口或扩展 ...

最新文章

  1. MSSQL2005 手工盲注详解
  2. mysql 工具图形学_[计算机图形学]贝塞尔曲线
  3. ecshop后台实现用ajax动态修改/更新用户评论的时间
  4. 集体智慧编程 - 构建价格模型
  5. 我理解消化后的浮点数存储
  6. 猎鹰spacex_SpaceX:简单,美观的界面是未来
  7. 关于“数据中心”的最强入门科普
  8. 高效新思路!实例分割算法!腾讯、华科出品!入选ICCV 2021!
  9. 怎么创建python django项目_创建Django项目图文实例详解
  10. 【免费毕设】基于Web的subversion用户管理系统(系统+论文)
  11. JAVA idea中安装P3C方法和使用指南
  12. 服务器虚拟化怎么配置,教你如何配置服务器虚拟化环境
  13. 物联网小课堂之NB-IoT无线通信中的发射功率和接收灵敏度
  14. windows和linux的icmp包,linux和windows下icmp的区别
  15. 练习-Java循环综合练习一之住房贷款还款计算
  16. SAP ABAP ASSIGNED 用法
  17. 天气预报数据保存APP的制作
  18. C++ Vjudge 训练题
  19. 腾讯云服务器的稳定性和安全性怎么样?
  20. Plecs电力电子仿真专业教程-第一季 补充课程 Plecs的安装教程与软件下载

热门文章

  1. 新兴短距离无线通信技术ZigBee入门到进阶
  2. 常用ms-dos命令
  3. crontab简单示例
  4. 做了表分区以后的数据库表,在使用程序进行修改操作时报异常。
  5. 查看apache连接数及apache工作原理
  6. 迅雷(XUNLEI)的工作原理揭密(续)---突出重围
  7. Careers support for Masters students cambridge
  8. under what circumstances, breakfast is essential
  9. 啊,苏黎世联邦理工的拒信,最想去的学校啊
  10. 居家学习的核心操作准则:45分钟的专注