일단 씻고 나가자
25.03.11 본문
2025. 03. 11 화요일
- [Java] 추상 클래스, 인터페이스의 차이? 람다?
: 인터페이스는 추상 클래스의 일종으로 볼 수 있으며,
추상 클래스에서 멤버 변수, 메서드를 제거하고 추상 메서드만을 남긴 것이 인터페이스이다.
추상 클래스는 하나 이상의 abstract 메서드를 가진 클래스로,
클래스와 추상 메서드에 abstract 키워드를 명시해야 하며,
그 외엔 구현된 메서드 및 변수를 가질 수 있다.
인터페이스는 하나 이상의 abstract 메서드만을 가진 것으로,
abstract 키워드 명시 없이 추상 메서드를 작성할 수 있으며,
상수 및 default, static 구현 메서드를 가질 수 있다.
추상 클래스와 인터페이스 모두 new로 인스턴스화 할 수 없으며,
다른 클래스가 상속/구현을 통해 추상 메서드를 오버라이딩 한 후에 사용할 수 있다.
둘은 유사하지만 목적이 다르다.
추상 클래스는 본질이 클래스로, 일부는 구현 후 상속/확장 사용을 위한 것이라면
인터페이스는 구현 받은 클래스들에게 동일한 사용 방법(동작)을 강제하기 위함이다.
람다는 단일 메서드 인터페이스에서만 사용할 수 있으며,
추상 클래스가 하나의 추상 메서드만 가진다고 해도 람다로 사용할 수 없다.
람다는 메서드 타입/이름, 매개변수 타입, return을 제거하고 간단히 사용할 수 있는,
함수형 프로그래밍을 위한 함수식이며,
이를 통해 interface를 new로 구현할 수 있고, 이렇게 탄생한 객체는 따로 lambda 이름을 부여받아 일회용으로 사용되게 된다.
https://inpa.tistory.com/entry/%E2%98%95-Lambda-Expression
- [DB] SQL에서 조건문 사용법?
: SELECT에서 사용할 경우,
* IF(조건, true일 때 넣을 값, false일 때 넣을 값) attribute
* CASE WHEN 조건1 THEN 조건1일 때 넣을 값...
ELSE 아무 조건에도 해당하지 않을 때 넣을 값
END attribute
trigger 등에서 사용할 경우,
* IF 조건 THEN 적용할 수식 (SQL 문) END IF;