Java创建子类实例对象
Java里的子类创建实例时会自动调用父类的无参构造器。即便你使用的是子类的有参构造器。
Java中的初始化问题
Java中有一个叫做多态的特性,即父类可以调用子类重写的父类方法,其实现方式如下。
class Parent{
public void test(){
System.out.println("Father");
}
}
class Child{
public void test{
System.out.println("child");
}
public void child(){
System.out.println("这是子类独有的方法");
}
public static void main(String[]args){
Parent p=new Child();
p.test();//输出结果为child;
}
}
父类数组中添加子类对象的问题
由上面例子可以得到通过用子类初始化父类可以使父类调用子类中重写的方法。但是需要注意的是用这种方法初始化的父类是无法调用子类独有的新方法的。
请看如下例子
Parent []p=new Parent[];
p[0]=new Child();
//p[0].child();编译器报错,父类不能调用子类独有的方法
((Child)p[0]).child();//将p[0]强制转型为子类就可以调用该方法
需要注意的是子类是无法强行转为父类的,强转的结果是编译器报错。