java默认构造器和构造器继承,实例展示

BSO 2020-10-22 16:18:01 java常见问答 5023

近几年随着科学技术的不断变革与发展,各种新技术的应用逐渐出现在我们的日常生活当中。大家对于java应该是不陌生的,它是使用非常广泛的编程软件。今天就来为大家介绍一下,java默认构造器和构造器继承,一起来看看吧。

1.默认构造器

新建一个类,不提供任何构造器,编译器会默认提供一个无参构造器,这就是为什么没定义任何构造器,却可以new某个对象(),代码如下所示:

public class People
{}

以上这个People类,可以直接通过new People()来实例化。

2. 禁止对象被外部创建

如果不希望People在外部通过new People()来实例化,只需要将构造器定义为private,代码如下所示:

public class People
{
    private People()
    {}
}

3.构造器重载

重载可以简单理解为:同个方法名,不同的参数列表。如果希望People能在外部通过new People()或new People("字符串") 来实例化,代码如下所示:

public class People
{
    //通过new People()调用
    public People()
    {}
    //通过new People("字符串") 调用
    public People(String str)
    {}
}

4.构造器的继承

定义父类构造器,由于该构造器自定义了一个带参构造器,覆盖了默认的无参构造器,所以不能直接new SuperClass()调用了,除非再定义一个无参构造器,代码如下所示:

/**
 * 父类构造器
 */
public class SuperClass
{
    /**
     * 自定义带参构造器
     */
    public SuperClass(String str)
    {
        System.out.println("父类的带参构造方法,参数为:" + str);
    }
}

定义子类构造器,继承SuperClass,由于SuperClass没有无参构造器,所以必须在子类构造器中通过super("字符串")来调用,否则编译器会报错,代码如下所示:

/**
 * 子类构造器
 */
public class SubClass extends SuperClass
{
    /**
     * 无参构造器
     */
    public SubClass()
    {
        //由于SuperClass没有无参构造器,所以必须在子类构造器中通过 super("字符串")来调用,否则编译器会报错。
        //如果没定义该句,则编译器会默认调用 super()
        super("");
    }
    /**
     * 带参构造器
     */
    public SubClass(String subStr)
    {
        //由于SuperClass没有无参构造器,所以必须在子类构造器中通过 super("字符串")来调用,否则编译器会报错。
        //如果没定义该句,则编译器会默认调用 super()
        super(subStr);
    }
}

以上就是关于java默认构造器和构造器继承的主要内容了。并且用实际的代码为大家展示出来。如果你对java知识感兴趣,想要了解更多java实例,敬请关注奇Q工具网。

推荐阅读:

java中构造器是什么意思?它有哪些内容?

java中单个构造函数方法,图文详解

java构造函数使用方法,详细解析