Java程序员_编程开发学习笔记_网站安全运维教程_渗透技术教程

Java 类继承与构造方法调用实战解析:super与this的应用

阿贵
4天前发布 /正在检测是否收录...
温馨提示:
本文最后更新于2025年08月31日,已超过4天没有更新,若内容或图片失效,请留言反馈。

Java 类继承与构造方法调用实战解析:super与this的应用

71.png

一、原题完整代码呈现

以下是计算机二级Java考试中关于类继承、构造方法调用及程序入口的典型题型,主要考察main方法声明、构造方法间的调用,包含2处需要填写的空白(标记为//*********Found**********):

public class Java_1 extends TT
{
   //*********Found**********
   public static void __________________(______________ args[])
   {
      Java_1 t = new Java_1("小龙");
   }
   public Java_1(String s)
   {
      super(s);
      System.out.println("您好吗?");
   }
   public Java_1()
   {
      this("我是文朋");
   }
}

class TT
{
   public TT()
   {
      System.out.println("多高兴啊!");
   }
   public TT(String s)
   {
   //*********Found**********
      _____________________;
      System.out.println("我是"+s);
   }
}

二、空白处逐一解析与解答

1. 第一处空白:程序入口main方法的声明

答案:mainString

//*********Found**********
public static void main(String args[])

解析
Java程序的入口是main方法,其固定声明格式为public static void main(String[] args)。其中:

  • main是方法名,是JVM识别的程序入口标识
  • String是参数类型,args是字符串数组参数(用于接收命令行参数)
    因此第一空填写main,第二空填写String
2. 第二处空白:构造方法中调用本类无参构造方法

答案:this()

//*********Found**********
this();

解析
TT类有两个构造方法:无参构造方法TT()和带参构造方法TT(String s)。在带参构造方法中,this()用于调用本类的无参构造方法,确保无参构造中的逻辑(打印“多高兴啊!”)被执行。若不调用,无参构造方法不会自动执行,因此填写this()

三、完整正确代码

四、程序功能与运行说明

程序功能

该程序通过类继承和构造方法调用,演示了父类与子类构造方法的执行顺序,核心功能包括:

  1. Java_1类继承TT类,定义了带参和无参构造方法
  2. TT类定义了无参和带参构造方法,带参构造中调用无参构造
  3. 程序入口创建Java_1对象,触发一系列构造方法调用并输出信息
运行说明
  1. 程序启动时,main方法执行Java_1 t = new Java_1("小龙"),触发Java_1的带参构造方法
  2. 构造方法调用顺序:

    • Java_1(String s)中首先调用super(s)(父类TT的带参构造方法)
    • TT(String s)中调用this()(本类TT的无参构造方法),打印多高兴啊!
    • 回到TT(String s),继续执行打印我是小龙
    • 回到Java_1(String s),继续执行打印您好吗?
  3. 最终输出结果:

    多高兴啊!
    我是小龙
    您好吗?

五、核心知识点总结

  1. 程序入口main方法

    • 声明格式:public static void main(String[] args),必须是public static void修饰,参数为String数组
    • 作用:JVM启动时会寻找并执行该方法,是程序的起点
    • 注意:方法名必须为main(小写),参数名args可自定义,但类型必须是String[]
  2. 构造方法的调用规则

    • 子类构造方法中,默认会隐式调用父类的无参构造方法(通过super()
    • 若显式调用父类构造方法(如super(s)),则隐式调用失效
    • 本类构造方法中,可通过this(参数)调用本类其他构造方法,必须放在构造方法的第一行
    • 父类构造方法执行早于子类构造方法(先有父再有子)
  3. this与super的区别

    • this():调用本类的其他构造方法,只能用于构造方法中,且必须是第一句
    • super():调用父类的构造方法,只能用于构造方法中,且必须是第一句
    • 注意:this()super()不能同时出现在同一个构造方法中(都要求第一句)
  4. 继承中的构造方法执行顺序

    • 当创建子类对象时,先执行父类构造方法,再执行子类构造方法
    • 若父类构造方法中调用了本类其他构造方法(如this()),则按调用顺序执行父类内部构造方法
    • 示例流程:子类构造 → 父类带参构造 → 父类无参构造 → 父类带参构造剩余逻辑 → 子类构造剩余逻辑

六、常见错误与应试技巧

  1. 常见错误分析

    • 第一处空白main方法错误:写成Main(首字母大写,JVM无法识别)或main(int[] args)(参数类型错误),导致程序无法启动
    • 第二处空白构造调用错误:写成super()(调用父类无参构造,但TT的父类是Object,不会执行TT的无参构造)或遗漏(TT的无参构造不执行,缺少“多高兴啊!”输出)
  2. 应试技巧

    • main方法口诀:"public static void main,String数组做参数,程序入口要记牢"
    • 构造调用:"本类构造用this(),父类构造用super(),第一行里来安家"
    • 执行顺序:"创建子类对象时,父类构造先执行,再到子类顺下来"
    • 调试技巧:在每个构造方法中添加打印语句,观察输出顺序,验证调用逻辑

通过本题,我们掌握了main方法的正确声明、继承中构造方法的调用规则(this与super的使用)及构造方法的执行顺序。理解这些知识点对编写具有继承关系的类至关重要,也是Java面向对象编程的核心基础。

喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
OωO
取消 登录评论