A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zzm0717 中级黑马   /  2016-4-28 21:45  /  587 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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指针

17 个回复

倒序浏览
给力,赞一个
回复 使用道具 举报
能顶起吗?
回复 使用道具 举报
顶顶顶!!!
回复 使用道具 举报
不懂啊 ,我是小白。
回复 使用道具 举报 1 0

这个可以有...
回复 使用道具 举报
Erry 发表于 2016-4-28 22:04
不懂啊 ,我是小白。

哪里不懂啊
回复 使用道具 举报
回复 使用道具 举报

必须赞
回复 使用道具 举报
说的太过复杂,其实可以简单明了
回复 使用道具 举报

我看到代码我就蒙蒙的
回复 使用道具 举报
总结挺全乎
回复 使用道具 举报

也不行,将就着看吧
回复 使用道具 举报
Erry 发表于 2016-4-28 22:04
不懂啊 ,我是小白。

看不懂吗???
回复 使用道具 举报
土豆你个马铃薯 发表于 2016-5-2 19:40
说的太过复杂,其实可以简单明了

求大神指导
回复 使用道具 举报

顶起来!!!
回复 使用道具 举报

必须能啊!!
回复 使用道具 举报

来,大赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马