
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。构造器用于创建特定类型对象——准备好对象以备使用,同时接收构造器可以使用的参数,以在第一次创建对象时,设置成员属性和方法的值
1、创建对象
新对象创建的两种方法
var newObject={};var newObject=new object();//object 构造器的简洁记法2、基本Constructorfunction Car(model,year,miles){this.model=model;this.year=year;this.miles=miles;this.toString=function(){return this.model+"has done"+this.miles+"miles";};};//用法//可以创建car新实例var civic=new Car("Hona Civic",2009,2000);var mondeo=new Car("Ford Mondeo",2010,5000);console.log(civic.toString());console.log(mondeo.toString());3、带原型的Constructorfuncion() Ca(model,year,miles){this.model=model;this.year=year;this.miles=miles;//注意使用Object.prototype.newMethod 而不是Object.prototype是为了重新定义prototype对象Car.prototype.toString=function(){return this.model+"Has done" +this.miles+"miles";};};//用法var civic=new Car("Honda Civic",2009,20000);var momdeo=new Car("Ford Mondeo",2010,5000);console.log(civic.toString());console.log(mondeo.toString());现在toString()的单一实例就能够在所有Car对象之间共享了class A {public int Avar;public A() {System.out.println("AAA");doSomething();}public void doSomething() {Avar = 1111;System.out.println("A.doSomething()");}}public class B extends A {public int Bvar = 2222;public B() {System.out.println("BBB");doSomething();System.out.println("Avar=" + Avar);}public void doSomething() {System.out.println("Bvar=" + Bvar);}public static void main(String[] args) {new B();}}顺序是这样得,首先生成B就得先生成A,所以调用A的构造器,输出AAA,然后调用方法dosomething,注意:A的该方法被B覆盖,而你生成的是B的对象,所以它调用B的方法,由于BVAR目前没有给定值,所以自动初始化为0;