抽象类的字类是否一定需要重写它的抽象方法?

今天进行复习内容的时候,在书上看到了一句话:任何实现抽象类的子类都必须要实现父类的抽象方法,除非子类也是抽象类。

那么我就忽然想到如果抽象类的子类也是抽象类,那么它可以对抽象类进行重写吗?

我实验了一下,居然成功了!

 

 

 不过想想也是,抽象类的定义是什么?

抽象类是一个使用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();
    }
}

  

 

posted on 2021-03-05 12:11  王逾1314  阅读(480)  评论(0)    收藏  举报