abstract class a1 { public int v1; abstract void test(); } abstract class a2 extends a1 { public int v2; } class Sample extends v2 { void test() { } } 因为包含一个抽象方法test,类v1必须被声明为抽象类。它的子类v2继承了抽象方法test,但没有实现它,所以它也必须声明为抽象类。然而,v2的子类Sample因为实现了test,所以它不必声明为抽象的。