抽象类的字类是否一定需要重写它的抽象方法?
今天进行复习内容的时候,在书上看到了一句话:任何实现抽象类的子类都必须要实现父类的抽象方法,除非子类也是抽象类。
那么我就忽然想到如果抽象类的子类也是抽象类,那么它可以对抽象类进行重写吗?
我实验了一下,居然成功了!

不过想想也是,抽象类的定义是什么?
抽象类是一个使用Abstract 修饰的类,所以他的本质还是一个类,只不过是有所限制的类。既然类可以重写抽象类的抽象方法,那么抽象类为什么不可以呢?
接下来我又想到了,如果一个类实现上面这个重写了抽象类子类,那么这个类还需要重写抽象方法吗?
想到了就试试,经过实验,这个类居然不需要实现抽象方法了。所以感觉到很惊讶。
一下是实验的代码。
第一个抽象类
public abstract class Demo { abstract void test(); }
第二个抽象类
public abstract class Demo1 extends Demo {
@Override
void test() {
System.out.println("测试");
}
}
实现的子类
public class Demo2 extends Demo1 {
}
实现的方法
public class Test {
public static void main(String[] args) {
Demo2 demo2 = new Demo2();
demo2.test();
}
}
浙公网安备 33010602011771号