인터페이스

Java

(Java8) 자바 8에서 변경된 인터페이스(1) + 이펙티브 자바

자바 8 버전이 되면서 인터페이스에서도 변경이 생겼습니다. 대표적으로 눈에 띄는 것이 기본 메서드 지원(default method)과 static 메서드 지원이 있습니다. 이번 문서에서는 기본 문서와 static 메서드를 지원함으로써 가능한 것들에 대해 알아보려고 합니다. 🧑‍💻상속, 구현에 용이한 기본 메서드 public interface Foo { void sayHelloTo(String name); } sayHelloTo라는 추상 메서드를 가진 Foo 인터페이스가 있습니다. 그리고 이 클래스를 여럭 곳에서 상속받아, 이를 구현하고 있다고 생각해봅시다. 그럼 자바 8이전에는 다음과 같이 사용해야 했을 것입니다. public class FooImpl implements Foo { @Override vo..

Java

(Java) Interface와 Abstract class의 차이(인터페이스와 추상클래스)

백엔드 개발자이고 면접을 준비하고 있거나, 면접을 봐본 사람이라면 이 질문에 대해서 고민 해봤을 것이다. 언뜻 보면 둘이 비슷하게 생겼다. 외부적으로는 선언된 방식이 interface냐 abstract class냐의 차이가 있지만 말이다. 그럼 각각에 대해서 알아보도록 하자. 🧐Interface 먼저 인터페이스 코드를 보자. public interface Dog { void bark(); void walk(); } Dog라는 interface에는 두가지 메서드가 있다. 하나는 bark(), 하나는 walk() 각각의 메서드는 추상 메서드인가? 앞에 abstract가 없는데도 추상 메서드인가? 그렇다. interface가 가지고 있는 메서드는 모두 추상 메서드이다. 그럼 정말 모두 추상 메서드일까? 다음의..

TIL(Today I learned)

(TIL) 20220703, Java 8

🏴󠁩󠁤󠁪󠁷󠁿Facts(한 것) & Findings(배운 것) 자바에는 접근자 메서드와 변경자 메서드가 있다. 호출되는 객체를 변경하는 메서드를 변경자라고 하고, 객체를 변경하지 않는 메서드를 접근자라고 한다. class Main { public static void main(String[] args) { ArrayList friends = new ArrayList(); friends.add("peter"); //변경자 friends.get(0); // 접근자 } } final로 선언된 변수는 변경이 불가능하다고 알려져있다. 그럼 어떤 변경인가? 인스턴스 변수에 final이 붙으면 객체 참조 변경이 불가능하다. 클래스 메서드에 final이 붙으면 오버라이딩이 불가능하다. 클래스에 final이 붙으면 상속이..

후;
'인터페이스' 태그의 글 목록