1.结论
并不是所有的类实现接口后都必须实现接口的所有方法!
2.特殊情况
当Java抽象类实现某个接口后没必要实现所有的方法。
3.注意点
当Java普通类实现接口后必须实现接口中的所有方法。
4.原因
为什么抽象类不需要实现所有方法?
因为抽象类本身是具有抽象性的,它的方法也大多不需要进行实现,只需要声明,其他实现的过程多交给继承它的子类。而接口本身就更为抽象的一种形式,所以如果让一个本来抽象的类去实现一个更为抽象的接口的所有方法是没有必要的,除非对于抽象类本身而言需要接口的一些方法来完善自身。而没有实现的其他方法完全可以交给它的派生类去实现。
为什么普通类需要实现所有方法?
普通类中的所有方法都需要有方法体,即使是空方法。当一个普通类实现了一个接口后就必须要实现其所有的方法,如果有任何一个方法没有实现,在类向接口向上转型的时候就会因为丢失数据(因为此时普通类中没有接口的完整数据)导致转型失败,这样显然是不允许的。
5.同时使用抽象类和接口有什么好处?
如果一个普通类想要实现接口的某些方法,此时需要借助抽象类,可以让抽象类先实现接口中的部分方法,然后普通类通过继承抽象类后再去实现自己需要的接口中的方法。
网友评论