近几年随着科学技术的不断变革与发展,各种新技术的应用逐渐出现在我们的日常生活当中。大家对于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工具网。
推荐阅读: