电脑
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 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+'吃饱了,要去抓老鼠了'); } }
每一个子类的构造方法都默认调用super();父类中的构造方法也有(是他父类的);