1. 为什么子类的构造方法在运行之前,必须调用父类的 构造方法?能不能反过来?为什么不能反过来?
因为子类继承了父类,那么就默认的含有父类的公共成员方法和公共成员变量,这些方法和变量在子类里不再重复声明。如果初始化子类的时候,不初始化父类,那么通过子类调用父类方法或变量的时候会出现什么情况呢?当然就是抛异常阿!所以,Java虚拟机会在初始化子类的时候默认的初始化子类的父类。而且是一层一层的往上递进!
2. 请 自行编写代码测试以下特性 : 在子类中,若要调用父类中被覆盖的方法,可以使用 super 关键字。
package test;class plus1{ public int add(int i){ return i+1;} }class plus2 extends plus1{ public int add(int j){ return j+10;} public int add1(int k){ return super.add(k);} }public class Fruit{ public static void main(String args[]) { plus2 f=new plus2(); System.out.println(f.add(1)); System.out.println(f.add1(1)); }