gpt4 book ai didi

java - 默认和参数化构造函数

转载 作者:行者123 更新时间:2023-12-02 00:05:09 25 4
gpt4 key购买 nike

我正在调用父类(super class)的参数化构造函数,然后它还会抛出编译时错误,例如没有默认构造函数,为什么?因为根据程序,我根本不调用默认构造函数。

class Sup
{
public Sup(String s)
{
System.out.println("super");
}
}

class Sub extends Sup
{
public Sub()
{
System.out.println("sub class");
}

public static void main(String arg[])
{
Sup s2=new Sup("pavan");
}
}

最佳答案

您需要定义父类(super class)默认构造函数,因为除非另有指定,否则基类构造函数将尝试调用父类(super class),在您的情况下,父类(super class)没有无参数构造函数,因此您将收到编译错误.

class Sup
{
public Sup(){}

public Sup(String s)
{
System.out.println("super");
}
}

class Sub extends Sup
{
public Sub()
{
System.out.println("sub class");
}

public static void main(String arg[])
{
Sup s2=new Sup("pavan");
}
}

或者使用 super() 显式调用父类(super class)构造函数,在您的情况下使用参数化构造函数 super("some string")

class Sup
{
public Sup(String s)
{
System.out.println("super");
}
}

class Sub extends Sup
{
public Sub()
{
super("some string");

System.out.println("sub class");
}

public static void main(String arg[])
{
Sup s2=new Sup("pavan");
}
}

关于java - 默认和参数化构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14036182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com