Java重载Java构造器

1)如果java没有写构造器,编译器会调用默认的构造器。如果写了一个构造器,编译环境便不会调用默认的构造器

2)构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用)不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。 

3)构造器没有返回值,也不需要void。 

4)This用法,方法中This,指向的是执行方法的类的实例。构造器的this指向同一个类中,不同参数列表的另外一个构造器,需在在第一行。

 

public class Platypus { 

String name; 

Platypus(String input) { 

name = input; 

Platypus() { 

this("John/Mary Doe"); 

 

5super 在构造器和一般方法中,都用关键字super指向超类,但是用的方法不一样。一般方法用这个关键字去执行被重载的超类中的方法。看下面的例子: 

class Mammal { 

void getBirthInfo() { 

System.out.println("born alive."); 

 

class Platypus extends Mammal { 

void getBirthInfo() { 

System.out.println("hatch from eggs"); 

System.out.print("a mammal normally is "); 

super.getBirthInfo(); 

} } 

而在构造器中则表示super去调用超类中的构造器。

public class SuperClassDemo { 

SuperClassDemo() {} 

 

class Child extends SuperClassDemo { 

Child() { 

super(); 

 

 

总结:

主题

构造器

方法

功能

建立一个类的实例

java功能语句

修饰

不能用bstract, final, native,static, or synchronized

返回类型

没有返回值,没有void

有返回值,或者void

命名

和类名相同;通常为名词,大写开头

通常代表一个动词的意思,小写开头

this

指向同一个类中另外一个构造器,在第一行

指向当前类的一个实例,不能用于静态方法

super

调用父类的构造器,在第一行

调用父类中一个重载的方法

继承

构造器不能被继承

方法可以被继承

编译器自动加入一个缺省的构造器

自动加入(如果没有)

不支持

编译器自动加入一个缺省的调用到超类的构造器

自动加入(如果没有)

不支持

原文地址:https://www.cnblogs.com/richelle009/p/4054126.html