• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
返回主页

不久

  • 博客园
  • 首页
  • 新随笔
  • 联系
  • 订阅
  • 管理

super关键字

person是父类,student是子类,

 

 

调用属性或者方法

super和this调用属性的区别:

子父类中出现同名的属性的时候,记住属性是不能覆盖的,即子类中有两个同名的属性,设属性为int类型的id,子类为1001,父类为1002,new一个子类的对象S,这时输出子类的id的时候语句为:

system.out.println(id)

输出父类的id的时候

system.out.print(super.id)

结果为:

1001 1002

super 和this调用方法的区别

super方法时,是直接从父类去找,直接父类没找到再到间接父类去找,而this.属性或者方法时就会先到子类去找,然后再往父类找。理解super时可以对比this进行理解

所以如果子父类有同名方法super.方法就是调用父类的,this.是先调子类,再调父类

 

 

super调用构造器的理解

 

子类构造器的首行如果没有显式的声明是调用this()还是super(),我们就默认为调用super(),即在子类的构造器中

public Student(){ }

里面其实还有一个super(),这个super会先调用父类中的无参构造器。

posted @ 2021-09-06 19:48  不久  阅读(40)  评论(0)    收藏  举报
刷新页面返回顶部

公告

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3