java Person,Student,GoodStudent 三个类的继承、构造函数的执行

三个类的继承关系如下:

Person
  |
Student
  |
GoodStudent

其中,Person是父类,Student是子类,GoodStudent是Student的子类。即Student继承了Person类,GoodStudent继承了Student类。

在Java中,子类的构造函数中会默认调用父类的空参构造函数。若父类没有空参构造函数,则需要在子类的构造函数中手动调用父类的有参构造函数。还可以使用super关键字来调用父类的构造函数。

例如,Person类和Student类定义如下:

public class Person {
    private String name;

    public Person() {
        System.out.println("Person的无参构造函数被调用了");
    }

    public Person(String name) {
        System.out.println("Person的有参构造函数被调用了");
        this.name = name;
    }
}

public class Student extends Person {
    private int grade;

    public Student(int grade) {
        System.out.println("Student的无参构造函数被调用了");
        this.grade = grade;
    }

    public Student(String name, int grade) {
        super(name); // 调用父类的有参构造函数
        System.out.println("Student的有参构造函数被调用了");
        this.grade = grade;
    }
}

在这个例子中,Person有空参构造函数和有参构造函数,但是Student只有有参构造函数,没有空参构造函数。当创建Student对象时,由于Student没有定义空参构造函数,Java编译器会默认调用父类Person的空参构造函数。

接下来,我们可以用以下代码创建一个Student对象:

Student student1 = new Student(90);

执行以上代码后,输出结果为:

Person的无参构造函数被调用了
Student的无参构造函数被调用了

由此可见,当创建Student对象时,会先调用Person的无参构造函数,然后调用Student的无参构造函数。

接下来,我们再创建一个Student对象:

Student student2 = new Student("小红", 80);

执行以上代码后,输出结果为:

Person的有参构造函数被调用了
Student的有参构造函数被调用了

由此可见,当创建Student对象时,会先调用Person的有参构造函数,然后调用Student的有参构造函数。在Student的有参构造函数中,使用super关键字调用了父类Person的有参构造函数。

使用相同的方法,我们可以创建GoodStudent:

public class GoodStudent extends Student {
    private String praise;

    public GoodStudent(String praise) {
        System.out.println("GoodStudent的无参构造函数被调用了");
        this.praise = praise;
    }

    public GoodStudent(String name, int grade, String praise) {
        super(name, grade); // 调用父类Student的有参构造函数
        System.out.println("GoodStudent的有参构造函数被调用了");
        this.praise = praise;
    }
}

GoodStudent goodStudent = new GoodStudent("好样的");

执行以上代码后,输出结果为:

Person的无参构造函数被调用了
Student的无参构造函数被调用了
GoodStudent的无参构造函数被调用了

由此可见,创建GoodStudent对象时,会先调用Person的无参构造函数,然后调用Student的无参构造函数,最后调用GoodStudent的无参构造函数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java Person,Student,GoodStudent 三个类的继承、构造函数的执行 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 教你用python编写二十几行的代码绘制动态烟花

    用Python编写二十几行的代码绘制动态烟花 本文将介绍如何使用Python编写二十几行的代码绘制动态烟花。我们将使用Python的turtle来绘图形,使用random库来生成随机数,使用time库来控制动画的速。 步骤 导入库。我们需要导turtle、random和time库。 import turtle import random import tim…

    other 2023年5月8日
    00
  • sqlserver删除数据库所有表

    SQLServer删除数据库所有表 在SQL Server数据库管理中,有时需要删除整个数据库中所有的表。下面是通过SQL Server Management Studio (SSMS)和Transact-SQL脚本两种方法实现该功能。 使用SQL Server Management Studio (SSMS)删除所有表 打开SQL Server Manag…

    其他 2023年3月28日
    00
  • shadowsocks服务器搭建及优化解决方案 教你如何正确上网!

    以下是关于“shadowsocks服务器搭建及优化解决方案教你如何正确上网!”的完整攻略,包括基本概念、使用方法和两个示例。 基本概念 Shadowsocks是一种基于Socks代理的加密传输协议,可以用于科学上网。Shadowsocks服务器搭建及优化解决方案是一种教你如何搭建和优化Shadowsocks的教程,以便更好地使用Shadowsocks进行科学…

    other 2023年5月7日
    00
  • HarmonyOS鸿蒙基本控件的实现

    下面我将为你详细讲解“HarmonyOS鸿蒙基本控件的实现”的完整攻略。 什么是HarmonyOS? HarmonyOS是华为开源的一款分布式操作系统。它能够在各种场景下实现设备和平台的无缝协同工作,为用户提供多种简单易用的服务。HarmonyOS所有的API是开放的,可以方便地通过开发者平台进行使用。 鸿蒙基本控件 在HarmonyOS中,基本控件是实现交…

    other 2023年6月27日
    00
  • C语言详解select函数的使用

    C语言详解select函数的使用 什么是select函数? select函数是Linux系统中的多路复用函数,它通过检查一组文件描述符(socket、文件、管道等)的状态来实现同时监视多个文件描述符的读写状态,并在其中的一个文件描述符可读写时进行相应的处理。可以说,select函数是实现I/O多路复用的重要工具之一。 select函数的语法 int sele…

    other 2023年6月27日
    00
  • nginx的url重写

    Nginx的URL重写 Nginx是目前非常流行的Web服务器软件,同时也是一个高性能的反向代理服务器。在Nginx中,我们经常会使用URL重写功能来实现比较灵活的URL转换和重定向。本文将介绍Nginx中的URL重写功能及其常用的用法。 什么是URL重写 URL重写是指将一个URL地址转换为另一个URL地址的过程,同时在转换的过程中可以修改URL中的参数、…

    其他 2023年3月28日
    00
  • asp.net中MD5 16位和32位加密函数

    ASP.NET中MD5 16位和32位加密函数攻略 在ASP.NET中,可以使用MD5算法对字符串进行加密。MD5加密算法可以生成一个128位的哈希值,但是常用的是将其截取为16位或32位的字符串表示形式。下面是详细的攻略,包含两个示例说明。 1. MD5 16位加密函数 MD5 16位加密函数将MD5生成的128位哈希值截取为16位字符串。下面是一个示例代…

    other 2023年7月28日
    00
  • mysql 8.0.21免安装版配置方法图文教程

    下面是“mysql 8.0.21免安装版配置方法图文教程”的完整攻略: 1. 下载mysql 8.0.21免安装版 首先,您需要下载mysql 8.0.21的免安装版安装包。您可以在mysql官方网站(https://dev.mysql.com/downloads/mysql)上找到免安装版的下载链接。如果您使用Windows操作系统,建议您下载zip格式的…

    other 2023年6月20日
    00
合作推广
合作推广
分享本页
返回顶部