首页 > 编程语言 >java中子类如何通过super调用父类的构造方法

java中子类如何通过super调用父类的构造方法

时间:2024-08-09 17:28:07浏览次数:7  
标签:java name 构造方法 子类 Dog Animal 父类

在 Java 中,子类可以通过使用 super 关键字来调用父类的构造方法。这通常在子类的构造方法中进行,以便在创建子类对象时初始化父类的成员。

你有一个父类 Animal,并且它有一个构造方法:

class Animal {
    String name;

    // 父类的构造方法
    Animal(String name) {
        this.name = name;
        System.out.println("Animal constructor called");
    }
}

现在,你有一个子类 Dog,想要在其构造方法中调用 Animal 的构造方法:

class Dog extends Animal {
    int age;

    // 子类的构造方法
    Dog(String name, int age) {
        super(name); // 调用父类的构造方法
        this.age = age;
        System.out.println("Dog constructor called");
    }
}

在这个例子中:

  • Dog 类是 Animal 类的子类。
  • Dog 的构造方法使用 super(name) 调用了 Animal 的构造方法。
  • 通过调用 super(name)Animal 类的构造方法将被执行,并初始化 name 字段。

通过以下代码测试以上类的创建:

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Buddy", 3);
        // 输出将是:
        // Animal constructor called
        // Dog constructor called
    }
}

以上代码展示了如何使用 super 来确保在实例化子类对象时,父类的构造方法也被调用并正确初始化。

标签:java,name,构造方法,子类,Dog,Animal,父类
From: https://blog.csdn.net/sksnbdkdisbsnskd/article/details/141067224

相关文章

  • 十大java开发框架总结,微服务开发必备!
     提起java开发框架,大部分工程师可能主要使用的是ssh三件套,在当前微服务作为开发主流的时代,我们有必要也了解下其他java开发框架。1.SpringBoot SpringBoot是当前Java开发框架的首选,几乎是行业标准了。由轻量级Java开发框架spring进化而来。一直被模仿,从未被超越。2. Quar......
  • java创建线程的几种方式,以及它们之间的区别(面试常用)
    线程创建的几种方法继承Thread类。如果继承了Thread类,直接new一个对象就可以创建一个线程实现Runnable接口。如果实现了Runnable接口,则还需要用Thread的构造方法,才能创建一个线程//使用Thread类创建线程并启动线程publicclassThreadTestextendsThread{@Overrid......
  • JAVA报错:Caused by: java.lang.NoSuchFieldError: REFLECTION
     Causedby:java.lang.NoSuchFieldError:REFLECTIONatcom.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.<init>(RuntimeModelBuilder.java:93)atcom.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:473)atcom......
  • edge浏览器加载java插件的方法
    在MicrosoftEdge浏览器中直接加载Java插件并不是一个直接支持的功能,因为Edge是基于Chromium内核的浏览器,主要支持Web技术如HTML、CSS和JavaScript。Java插件(通常指的是Java小程序,使用Java编程语言编写的应用程序)主要用于在早期的InternetExplorer浏览器中运行,但在现代浏览器中已......
  • 从Java类加载器源码浅析到线上热部署实现
    1Java代码的执行过程写了这么多代码,有没有想过我们的代码是怎么执行的?或者说定义了那么多类,我们的class是怎么加载到内存的?Java语言属于一种高级语言,而cpu能执行的只有机器码,所以Java代码的运行离不开jvm虚拟机的编译,下面用一张图说明在HotSpot虚拟机中Java代码加载到cpu执行的......
  • Java小白入门到实战应用教程-Scanner类及IO流讲解
    Java小白入门到实战应用教程-Scanner类及IO流讲解Scanner类我们前面写的很多例子都是程序独自执行的,但是我们做编程写代码的目的是要实现能人和代码去交互的。现在我们就来了解一个知识点,去实现最简单的人和程序的交互。在java中通过Scanner类来获取用户在控制台的输入......
  • java读取JSON文件并解析
    importcom.fasterxml.jackson.core.type.TypeReference;importcom.fasterxml.jackson.databind.ObjectMapper;importorg.codehaus.jettison.json.JSONObject;importjava.nio.file.Files;importjava.nio.file.Paths;importjava.util.List;importjava.util.Map;......
  • JAVA线程资源共享问题
    JAVA多线程共享资源问题场景引入这个场景是一个典型的多线程共享资源的场景,主要目的是测试和观察多个线程对共享变量sum进行并发操作时是否会出现线程安全问题场景描述共享资源:共享变量sum,初始值为0。多个线程同时对sum进行操作,一个线程负责自增操作,另一个线程负责自......
  • Java - IO流
    (IO随用随创建,不用了就关流)1.字节流OutputStream(字节输出流,写出)FileOutputStreanmoff表示起始索引,len表示截取长度Windows换行符:"\r\n"Linux:"\n"Mac:"\r"续写:创建对象第二个参数写true字节打印流(特有方法会原样输出)无缓冲区,自动刷新无用InputStream(字节输......
  • 1.1javaSE初识
    JDK:JDK是JavaDevelopmentKit的缩写,意为Java语言的软件开发工具包(SDK)。它是Java编程的核心工具,为程序开发者提供了一个完整的开发环境。JRE:Java运行环境,是运行Java程序所必须的环境的集合,包含了JVM(Java虚拟机)和Java核心类库。Java开发工具:包括编译器(javac)、解释器(java)、调试......