为什么一个类实现了所有接口中的的所有方法任把它声明为抽象类?这样做有什么好处啊?

解决方案 »

  1.   

    这样做是不合理的,因此没有一点好处,实际上是作者脑子不清楚,造成了逻辑的混乱。将一个没有抽象方法的类声明为抽象类是一种手段,够防止用户实例化该类的对象。但这样做的理由是该类的所有功能都是以 static 方法的形式提供的。比如 java.lang.Math 类声明为抽象类是也是合理的。但是,如果一个类完全实现了某种接口,提供了某种界面的一种实现方式,其目的自然是想利用多态性。这种情况下将其声明为抽象类,显然不能够达成此目的。