인터페이스

Kyu·2021년 1월 20일
0

Java 공부기록

목록 보기
18/40

인터페이스

추상클래스처럼 다형성을 보장하기 위해 등장한 개념

100% 다형성을 보장한다.

인터페이스랑 추상클래스랑 다른점은 뭔가?

추상클래스와 달리 인터페이스는 구체적인 로직을 가지고있는 메소드를 넣으면 안된다

추상클래스는 자식클래스가 기능이비슷하지만 인터페이스는 서로 기능이 다른클래스도 괜찮다

왜냐면 추상클래스에는 구현부가 있는 메소드도 들어갈수있기때문에 추상클래스를 상속받은 자식클래스들은 전부 그 메소드를 가질수밖에 없다. 그렇기때문에 자식클래스가 기능이 비슷해야한다는 것이다. 하지만 인터페이스는 애초에 구현부를 넣을수없기때문에 서로 다른메소드라도 인터페이스로 상속이 가능하다는것이다.

이말은 인터페이스의 자식클래스는 인터페이스의 멤버메소드들을 전부 오버라이딩해야한다는 뜻이기도하다

인터페이스는 협업을 위한 장치인가? (생활코딩)

인터페이스의 멤버는 전부 public이어야한다

인터페이스는 구현부가 없기때문에 인터페이스의 멤버는 abstract이지만 생략할수있다

그리고 인터페이스를 상속받을때는 extends라고 안하고 implements 구현한다고 한다.

인터페이스도 추상클래스처럼 하위클래스의 동작방식을 몰라도 인터페이스로 동작시킬수있

활용성?

다른 사람 API를 사용할때 인터페이스, 상속관계 등 개념을 꼭 알아야 사용할수있다

추상클래스와 인터페이스의 공통점

  • 다형성을 보장하기위해서 등장
  • 객체를 생성할 수 없다 (nex X)
  • 하위클래스에 의해 구현되어야 한다 (Override필수)
  • 부모클래스로 사용한다 (upcasting으로 객체를 생성)
  • 추상메서드를 가진다

추상클래스

  • 서로 기능이 비슷한 클래스의 공통 부분을 묶을 때 사용
  • 구현 메서드와 추상 메서드를 함께 가질 수 있다
  • 50% 디자인 (설계), 50% 구현 (설계와 구현을 함꼐 쓸수있다는 의미에서)
  • extends 키워드를 사용
  • 구현메서드를 가질 수 있다

인터페이스

  • 서로 기능 다른 클래스의 공통부분을 묶을 때 사용
  • 100% 추상 메서드로 이루어진다
  • 100% 디자인(설계), 규약 (티비를만들떄 리모컨을 고려해서 설계하는..그런..)
  • implements 키워드 사용
  • 구현 메서드를 가질 수 없다
  • 다중상속 형태를 지원한다 (자바는 단일 상속이다)
  • final static 멤버변수를 가질 수 있다
profile
TIL 남기는 공간입니다

0개의 댓글