Abstract class vs interface

abstract class vs interface

(Image from http://alecture.blogspot.com/2011/05/abstract-class-interface.html)

abstract class (일반변수+일반메소드+추상메소드 형태) – 추상클래스는 공통부분(abstract)을 상속해서 구현하게 함.
interface (상수+추상메소드 형태) – 기능(abstract) 구현(implements)을 강제함으로써, 구현한 객체들에서 동일한 동작을 보장할 수 있음.

An abstract class is generally used as a building basis for similar classes. Implementation that is common for the classes can be in the abstract class.
An interface is generally used to specify an ability for classes, where the classes doesn’t have to be very similar.