当前位置: 代码迷 >> Java相关 >> 输出结果
  详细解决方案

输出结果

热度:401   发布时间:2006-11-14 20:40:52.0

abstract class Exam4 {
int j=3;
Exam4()
{
print();
{
System.out.println(j);
}
}
abstract void print();
}

public class Exam4Sub extends Exam4{
int i=1;
void print()
{
System.out.println(i);
}
public static void main(String[] args) {
Exam4Sub e=new Exam4Sub();
e.print();
}
}

那子类下面的 void print()
{
System.out.println(i);
}
是不是对父类抽象方法的定义啊??


----------------解决方案--------------------------------------------------------
子的方法是子类覆盖了父类的方法

然后,对象如果是子类的,就会调用子类的方法,如果是父类的,就会调用父类的方法

----------------解决方案--------------------------------------------------------

是覆盖父类的方法!!


----------------解决方案--------------------------------------------------------

上面在创建对象的时候,也要调用子类的构造方法,但是字类没有定义一个构造方法,而我在书上看到这样一句话:如果没有定义一个构造方法,系统会生成一个默认的构造方法,它的作用是将类中的成员域初始化成相应类的默认值,如整数数据将初始化为0,引用数据类型数据将初始化为null等等;
是不是上面调用子类构造函数的时候,将i初始化为0了啊??


----------------解决方案--------------------------------------------------------
  相关解决方案