코딩조각

[java] 추상클래스와 인터페이스를 사용하는 이유

밍튜 2022. 9. 8. 18:20

final을 사용하는 이유: 추상이 상속을 강제하는 것이라면 final은 상속/변경을 금지하는 규제다.

실행되는 과정에서 한번 값이 정해진 이후에는 변수 내의 값이 바뀌지 않도록하는 규제다.

 

 

추상클래스를 사용하는 이유 : 부모클래스에 메소드의 시그니쳐만 정의해놓고

그 메소드의 실제 동작방법을 자식클래스에게 위임 -> 상속을 강제하기 위해 사용

 

 

인터페이스를 사용하는 이유: 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야 한다.

인터페이스의 메소드를 강제하기 위해 사용.

 

 

상속과 인터페이스의 차이 : 상속은 상위클래스의 기능을 하위클래스가 물려받는것

인터페이스는 특정 메소드가 반드시 존재하도록 강제하는것.

 

Ex) 협업자1의 Calculator 와 협업자2의 CalculatorConsumer 사이의 규약인 Calculatable interface를 만들어 협업자 상호간의 구체적인 약속을 만든다.

즉 서로간의 약속 = Interface = public 조작장치

 

 

인터페이스의 규칙: 

  1. 하나의 클래스가 여러개의 인터페이스를 구현 할수있음.
  2. 인터페이스도 상속이 된다.(인터페이스끼리의 상속은 extends )
  3. 인터페이스의 필드는 반드시 public이다.