final을 사용하는 이유: 추상이 상속을 강제하는 것이라면 final은 상속/변경을 금지하는 규제다.
실행되는 과정에서 한번 값이 정해진 이후에는 변수 내의 값이 바뀌지 않도록하는 규제다.
추상클래스를 사용하는 이유 : 부모클래스에 메소드의 시그니쳐만 정의해놓고
그 메소드의 실제 동작방법을 자식클래스에게 위임 -> 상속을 강제하기 위해 사용
인터페이스를 사용하는 이유: 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야 한다.
인터페이스의 메소드를 강제하기 위해 사용.
상속과 인터페이스의 차이 : 상속은 상위클래스의 기능을 하위클래스가 물려받는것
인터페이스는 특정 메소드가 반드시 존재하도록 강제하는것.
Ex) 협업자1의 Calculator 와 협업자2의 CalculatorConsumer 사이의 규약인 Calculatable interface를 만들어 협업자 상호간의 구체적인 약속을 만든다.
즉 서로간의 약속 = Interface = public 조작장치
인터페이스의 규칙:
- 하나의 클래스가 여러개의 인터페이스를 구현 할수있음.
- 인터페이스도 상속이 된다.(인터페이스끼리의 상속은 extends로 함)
- 인터페이스의 필드는 반드시 public이다.
'코딩조각' 카테고리의 다른 글
[Java]Interface 와 Collection Framework (0) | 2022.11.16 |
---|---|
[Spring] Transaction의 성질 (0) | 2022.09.20 |
[Spring] 스프링 핵심원리: 객체지향 설계의 5가지 원칙 SOLID(inflearn 김영한님 강의) (0) | 2022.09.06 |
[모든개발자를 위한 HTTP 웹 기본지식] IP, TCP, UDP (0) | 2022.09.01 |
[git] git rebase쉽게하는법, 원격 github에서 특정 브랜치만 가져오기 (0) | 2022.08.19 |