java中构造方法的简介及其实例
的有关信息介绍如下:
构造器又称构造方法,既然是方法那么他就会有方法的名字。 构造方法的名字必须和类名一致 一个类中可以有多个构造方法,他们都是以方法的重载的形式出现在类中,构造方法是一个特殊的方法 他没有返回值并且也不能写void 直接是修饰符 方法名(参数列表){方法体} 如果我们定义类的时候没有给该类定义以个构造方法,那么系统会默认给该类添加一个没有参数 的构造方法,如果我们定义类的时候给了构造方法,那么系统就不会给我们添加无参构造方法了 所以java建议我们如果在定义一个类的时候自己手动添加的一个有参构造方法。那么需要自己在动手 添加一个无参构造方法,注意知识一个建议并不是规定,所以不遵守程序也不会出现变异错误。
java中构造方法主要要来初始化对象,并且只有在new时执行一次;建立一个类可以有多了构造方法,也可以没有(不写),在不写的情况下系统会默认提供一个无参构造方法,如果写了构造方法系统则不会提供。即你没有,系统给你,你自己有,系统则不给你;
当一个类中有多个构造方法的时候,都是以重载的方式存在的,构造方法不可以继承,,但是每一个构造方法都有默认的super();调用;所以在自己写有参构造方法的时候,最好在写一个无参构造方法,(因为在此类的子类中,会默认调用super();因为super();是无参的而你的此类中是自己写的有参构造方法,调用无参super();时没有这个方法,编译不通过)
所以:建议自己在写有参构造方法的时候,再写一个无参构造方法,可减少子类中构造方法的错误;
大多时候我们的构造方法都是有参的,在子类有参构造方法中,会经常使用super调用父类的方法;
public abstract class Animal {/*定义一个抽象类,因为建立的子对象有不同的行为,,有抽象方法的类一定是抽象类,抽象方法是eat()和work()*/ String name; public Animal(){ } public Animal (String name){ this.name=name; } public abstract void eat(); public abstract void work();}
class Dog extends Animal{ public Dog(){super();/*默认调用,每个构造方法都默认调用父类的无参构造方法*/ }public Dog(String name) {super(name);/*调用父类有参构造方法(不写默认的是super())*/}
//eat和work 是在父类中的抽象方法,抽象方法全部都要重写,漏写则编译不通过;public void eat(){System.out.println(name+"吃奥尔良恐龙酱排骨!");}public void work(){System.out.println(name +"吃饱了,要看门了!");}}
class Cat extends Animal{ public Cat(){} public Cat(String name){ super(name); } public void eat(){ System.out.println(name+"吃海底20000米之下的金昌鱼!"); } public void work(){ System.out.println(name+"吃饱了,要去抓老鼠了"); }}



