当前位置: 首页 > news >正文

Java 继承②

目录

  • 1. super 关键字
  • 2. super 和 this
  • 3. this和super访问时的内存布局

1. super 关键字

在父类成员变量和子类成员变量名字相同的情况下,为了在子类中访问父类的成员。

super关键字的用法 :

  1. super.父类成员变量
classPerson{Stringname;intage=10;publicvoidsleep(){System.out.println(name+" sleep ");}}classPainterextendsPerson{intage=20;publicvoidprint(){System.out.println(super.age);System.out.println(age);}}publicstaticvoidmain(String[]args){Painterp=newPainter();p.print();}
  1. super.父类成员方法
classPerson{Stringname;intage=10;publicvoidsleep(){System.out.println("Person:sleep");}}classPainterextendsPerson{publicvoidsleep(){System.out.println("Painter:sleep");super.sleep();}}publicstaticvoidmain(String[]args){Painterp=newPainter();p.sleep();}
  1. super ()调用父类构造方法

super()只是帮助子类初始化继承父类的成员,并没有创建父类对象。

classPerson{Stringname;intage;publicPerson(Stringname,intage){this.name=name;this.age=age;}}classPainterextendsPerson{booleanblindness;publicPainter(booleanblindness,Stringname,intage){super(name,age);this.blindness=blindness;}}publicstaticvoidmain(String[]args){Painterp=newPainter(true,"da vinci",61);System.out.println(" "+p.name+" "+p.age);System.out.println("blindness: "+p.blindness);}

在初始化子类构造函数前,需要给父类构造函数初始化。且super()必须要放在第一行

Error❌:

注意:在父类和子类都没有提供构造函数的情况下,编译器会默认在子类和父类中生成隐含构造函数。
所以在没写构造函数时,并没有编译错误。

classPerson{Stringname;intage=10;publicPerson(){}}classPainterextendsPerson{booleanblindness;publicPainter(){super();}}

this()super()不能同时出现

Error❌:

classPerson{Stringname;intage=10;publicPerson(Stringname,intage){this.name=name;this.age=age;}}classPainterextendsPerson{booleanblindness;publicPainter(Stringname,intage){super(name,age);}publicPainter(){super("p1",10);this("p2",15);}}

2. super 和 this

相同点:

  • 都是Java关键字
  • 只能在类的非静态方法中访问非静态成员或方法
  • 在构造方法中,都必须放在第一行
  • this()super()不能同时出现

不同点:

  • this当前成员方法对象super是当前成员方法对象中的父类部分
  • 非静态成员方法中this调用当前类的成员变量和方法super调用继承父类的成员方法和成员
  • 在构造方法中,this()调用当前类的构造方法super()调用父类中的构造方法
  • 在构造方法中,一定会存在super()的调用;用户不调用this(),就不存在。

3. this和super访问时的内存布局

classBase{inta;intb;publicvoidprint(){System.out.println("Base");}}classDerivedextendsBase{intc;intd;publicvoidmethod(){super.a=10;super.b=20;c=30;this.d=40;System.out.println(super.a);System.out.println(super.b);System.out.println(c);System.out.println(this.d);//this 访问子类和父类所有成员System.out.println(this.a);System.out.println(this.b);this.print();}}publicclassTest{publicstaticvoidmain(String[]args){Derivedd=newDerived();d.method();}}

http://www.jsqmd.com/news/1244571/

相关文章:

  • 企业为什么要做双软评估?有哪些好处?
  • 2026年7月最新浪琴佛山桂城万达广场维修保养服务电话 - 浪琴官方售后服务中心
  • 亲身到店探访上海亨得利名表服务中心|最新地址及客服热线(2026年7月更新) - 亨得利官方
  • 2026年7月最新劳力士嘉兴桐乡万象汇维修保养服务电话 - 劳力士官方服务中心
  • 2026昆明二手手机店**:这5家口碑好又靠谱 - 官方资讯
  • 神经渲染技术:Python实现光照估计与材质重建
  • 2026年最新亲测!长沙信誉良好的家居定制源头工厂综合排行 - 起跑123
  • 2026年养殖场屋面保温批发厂家口碑选购实用参考指南 - 热点品牌推荐
  • 2026年宁波婚姻家事律师实力参考:婚内财产追回与复杂纠纷谁更专业 - 本地品牌推荐
  • YOLOX 自定义目标检测训练实战:VOC 数据、训练评估与预测展示
  • 权威通告:百达翡丽苏州网点地址及客户热线2026年7月更新 - 百达翡丽官方售后中心
  • 柔软亲肤餐巾纸哪家靠谱:【联盛森宝】绵软亲肤 - MXyuyu
  • 襄阳及周边靠谱的奔驰车轮胎轮毂供应商品牌选购指南 - 热点品牌推荐
  • 2026年聚氯乙烯(PVC)防水卷材源头厂家怎么选更靠谱 - 热点品牌推荐
  • 珠海市关于广东省工程技术研究中心的奖补政策是怎样的?各区有多少补贴?
  • 美度2026年7月重磅声明:乌鲁木齐最新网点地址及客户服务热线 - 亨得利钟表维修中心
  • 留学生不了解国内大厂职级体系?在 HR 面用行业通用标准对齐期望「蒸汽求职分享」
  • 2026昆明二手手机店**:这5家地址实测靠谱 - 官方资讯
  • 2026宁波食堂污水不锈钢隔油池主流厂商品控横评报告 - 起跑123
  • 2026年宁夏周边家庭园林景观设计机构挑选实用测评指南 - 热点品牌推荐
  • MCP为什么正在成为Agent的“USB接口”?开发者先搞懂这4点
  • 2026年华中及邻省工业用气采购 液氨供应商哪家合适 - 热点品牌推荐
  • 亲身探访郑州浪琴售后服务中心|维修地址与售后服务电话(2026年7月最新) - 浪琴服务中心
  • 钟祥企业网站传媒企业服务内容介绍及选型实用参考指南 - 热点品牌推荐
  • 2026浙江宁波正规高复机构哪家靠谱横向对比评测 - 起跑123
  • 2026年套膜收缩包装机直销工厂哪个厂便宜还靠谱 - 热点品牌推荐
  • 2026年7月最新劳力士苏州大悦城维修保养服务电话 - 劳力士官方服务中心
  • 2026年太阳能路灯生产商专业**榜,选这五家放心用 - 官方资讯
  • 2026年化工电力项目选靠谱螺纹换热管制造商找哪家 - 热点品牌推荐
  • 2026 年指挥中心控制台厂家怎么选?国家级项目落地数据与源头工厂实力对比