这里主要是讲解构造方法的重载constructor overload
已经了解了在构造对象时,会构造对象时会先调用其默认构造方法,如果我们事先定义的类的构造方法,那么就会该构造方法就会隐藏其默认构造方法。
本讲还讲到一个keyword那就是this,this表示对该类的构造方法进行调用。当然会根据实际情况进行调用。
public class ConstructOverload
{
public ConstructOverload()
{
this(3);//this的位置也很重要
System.out.println("test");
//this(3);//在这个位置上调用将出现错误,错误提示比较明显。可以方便改动。
}
public ConstructOverload(int i)
{
System.out.println(++i);
}
public static void main(String[] args)
{
ConstructOverload test=new ConstructOverload();
ConstructOverload test1=new ConstructOverload(1);
// System.out.println()
}
}
在本讲的会面也讲述了inheritence.在JAVA中,inheritence主要是单继承,不象C++存在多重继承,也省去了不少麻烦。
我们在定义类后,用keyword中的extends (延长)来表示继承关系。继承的时候,会先调用父类的默认构造方法来创建父类对象,之后再调用子类的默认构造方法来创建子类对象,如果我们在父类的构造方法上进行overload, 那么将直接用继承关系来创建子类对象,将出现编译出错。假如我们不再写父类的默认构造方法呢?那该怎么办?一个keyword就应运而生了,它就是super。这个关键字主要表示对父类的引用。用super(参数)这样的格式进行调用。
public class InheritenceTest
{
public static void main(String[] args)
{
Apple apple=new Apple();
System.out.println(apple.name);
}
}
class Fruit
{
String name="Fruit";
}
class Apple extends Fruit
{
}
子类的构造父类对象后,子类可以进父类的方法、属性进行重写。使子类具有自己的对象。