构造方法:
作用:
- 用于构造对象
- 与类同名,没有返回值类型,**但是可以可以有return语句--->用于结束语句的运行**
- 有参构造用于属性初始化,支持构造方法的重载
- 当类中没有定义任何形式的构造方法JVM会在底层默认添加无参构造方法,如果类中已经定义构造方法那么底层将不会再添加无参构造方法,此时只有有参构造或者自定义的无参构造
- 一个类中至少有一个构造方法
- Java中所有的非静态属性和方法要由对象来调用---(详情请见答疑区--)
**如果不想外部通过创建该对象的话,可以实现对象的私有化:private Person(){}---外部将不能再new来创建对象,private 声明此创建对象的方式是私有的方法-----应用的在单例模式中存在**
构造器的继承
- 构造器是可以被继承的,在底层默认子类构造器调用父类的无参构造器,如果父类没有无参构造器,那么子类就必须在自己的构造方法的第一行使用super关键字指定父类的构造器,
- 原因如下:如果底层不默认调用父类的无参构造器,子类继承了父类,则相当于获取了父类的信息,在加载子类的过程中必须要对属性进行初始化,由于父类的属性不存在于子类中,不能保证子类在加载完之后父类是否已经初始化,所以使用super()语句表示子类对于父类属性的初始化,保证子类的运行不受影响
- 如果父类存在无参构造方法,则子类将会默认的隐式调用super(),写不写都一样,如果父类不存在无参构造函数,则子类必须显式的调用super语句 — super(参数列表),表名是哪个构造方