형태가 너무 비슷해서 항상 헷갈렸던 추상클래스와 인터페이스..
오늘 정확하게 개념 정리하고 넘어가기 !
추상클래스
인터페이스
공통점
차이점
추상클래스는 상속을 통한 서브 클래스의 다형성 실현이 목적이고, 인터페이스는 클래스가 자신의 목적에 맞게 메소드를 구현하도록 하는 것이 목적이다.
즉 추상클래스는 슈퍼 클래스의 이용과 확장, 인터페이스는 동일 기능 구현이 목적이라고 할 수 있겠다.
ex)
추상 클래스
abstract public class Device {
abstract void shape(String shape);
abstract void onOff(String status);
abstract void battery(int battery);
}
인터페이스
public interface AlbumInterface {
public void album();
}
public interface ChatInterface {
public void chat(String to, String from);
}
public interface MusicInterface {
public void listenMusic();
}
인스턴스
public class Camera extends Device implements AlbumInterface{
public class Computer extends Device implements ChatInterface, MusicInterface{
public class MP3 extends Device implements MusicInterface{
public class Phone extends Device implements MusicInterface,ChatInterface,AlbumInterface{
사용 예를 들자면 이렇게 되지 않을까?!