본문 바로가기
728x90

자바15

추상 클래스와 인터페이스의 차이 인터페이스와 추상 클래스는 인스턴스화 하는 것이 불가능 하고 구현부가 없는 추상 메서드를 가질 수 있다. 또 한 java8에서 인터페이스에 디폴트 메서드가 추가된 후로 수상 클래스와 인터페이스의 차이가 모호해진 감이 있다. 하지만 이 둘은 여전히 다음과 같은 차지를 가지고 있다. 1. 인터페이스에서는 모든 변수가 public static final이다. 메서드는 public abstract이다. 2. 추상 클래스에서는 static 이나 final이 아닌 필드를 지정할 수 있고, public protected private 메소드르 가질 수 있다. 3. 인터페이스를 구현하는 어떤 클래스는 다른 여러개의 인터페이스들을 함께 구현할 수 있다. 자바는 다중상속을 지원하지 않기 때문에 추상클래스를 상속받은 서브클.. 2022. 1. 3.
optional optional은 java 8에서 새로 추가된 인터페이스이다. optional은 비어있거나 하나의 값을 담을 수 있는 컨테이너 인스턴스 타입이다. 아래와 같은 코드가 있다고 가정해 보자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 package me.skullkim.optional; /** * 온라인 수업에 대한 정보 * stream api 실습을 위한 클래스 * * @author yunki kim .. 2021. 11. 22.
함수형 인터페이스와 람다 표현식 함수형 인터페이스와 람다 표현식은 자바에서 함수형 프로그래밍을 할 수 있게 해주는 초석이다. 하지만 이들은 반드시 함수형 프로그래밍 만을 위해서 사용하라는 법은 없다. 함수형 인터페이스 추상 메서드가 하나만 존재하는 것이 함수형 인터페이스 이다. 1 2 3 4 public interface RunSomething { void doIt(); } cs 여기서 추상 메서드는 abstract가 생략되 있으므로 반드시 구현채를 구현해야 한다. 또 한 함수형 인터페이스는 default method, static method를 사용할 수 있다. 함수형 인터페이스를 구현할 때는 자바가 제공하는 @FunctionalInterface annotation을 사용한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 1.. 2021. 11. 20.
728x90