Abstract classとinterfaceの違い

記憶に新しい内にテクニカル面接でよく聞かれた質問を

自分のための今後の資料として書き出していきたいと思います。

Javaプログラミングに興味のない方にはおもしろくない、かつ

意味不明な内容になると思いますが、適当にスルーしちゃってくださいな。



If you need to change your design, make it an interface. However, you may have abstract classes that provide some default behavior.



Java Worldの「Abstract classes vs. interfaces」より

  • Because Java only allows single inheritance, abstract class can be limiting.
  • When implementing interface, all methods in interface have to be implemented unlike abstract method.
  • Can't Instantiate an Abstract Class.
  • Abstract Class is "is-a" and interface is "has-a" relationship.