추상클래스처럼 다형성을 보장하기 위해 등장한 개념
100% 다형성을 보장한다.
인터페이스랑 추상클래스랑 다른점은 뭔가?
추상클래스와 달리 인터페이스는 구체적인 로직을 가지고있는 메소드를 넣으면 안된다
추상클래스는 자식클래스가 기능이비슷하지만 인터페이스는 서로 기능이 다른클래스도 괜찮다
왜냐면 추상클래스에는 구현부가 있는 메소드도 들어갈수있기때문에 추상클래스를 상속받은 자식클래스들은 전부 그 메소드를 가질수밖에 없다. 그렇기때문에 자식클래스가 기능이 비슷해야한다는 것이다. 하지만 인터페이스는 애초에 구현부를 넣을수없기때문에 서로 다른메소드라도 인터페이스로 상속이 가능하다는것이다.
이말은 인터페이스의 자식클래스는 인터페이스의 멤버메소드들을 전부 오버라이딩해야한다는 뜻이기도하다
인터페이스는 협업을 위한 장치인가? (생활코딩)
인터페이스의 멤버는 전부 public이어야한다
인터페이스는 구현부가 없기때문에 인터페이스의 멤버는 abstract이지만 생략할수있다
그리고 인터페이스를 상속받을때는 extends라고 안하고 implements 구현한다고 한다.
인터페이스도 추상클래스처럼 하위클래스의 동작방식을 몰라도 인터페이스로 동작시킬수있
활용성?
다른 사람 API를 사용할때 인터페이스, 상속관계 등 개념을 꼭 알아야 사용할수있다
추상클래스와 인터페이스의 공통점
추상클래스
인터페이스