Sealed 클래스 도입
- 명시된 클래스만 상속시킬수 있다.
- 어떤 클래스가 해당클래스를 상속받는지 쉽게 알수 있고 제한할수 있다.
- Sealed 된 클래스를 활용하기 위해서는 같은 모듈 혹은 같은 패키지 안에 있어야한다.
// 최상위 클래스에 sealed라 선언.
public sealed class Character permits Hero, Monster {}
// permits로 선언된 Class만이 Character를 상속 받을 수 있다.
public sealed class Hero extends Character {}
public sealed class Npc extends Character // 상속 불가능
// non-sealed 로 선언된 Monster 는 어떤 class 든지 상속 할 수 있다.
public non-sealed class Monster extends Character {}
// final class는 아무도 상속할 수 없다.
public sealed class Hero extends Character permits Link, Mario {}
public final class Link extends Hero {}
public final class Maro extends Hero {}
public class Troll extends Hero {} // 상속 불가능
public class Troll extends Link {} // 상속 불가능
public class Troll extends Monster {} // 상속 가능
- final과 sealed의 차이
// final : 현 클래스를 아무도 상속 받을수가 없다.
final class FinalClass {}
// 에러: final 클래스를 상속할 수 없음
class SubClass extends FinalClass {}
// sealed : permits에 지정된 클래스만 상속 받을수 있다.
sealed class Shape permits Circle, Square {}
// 가능
final class Circle extends Shape {}
final class Square extends Shape {}
// 불가능
class Triangle extends Shape {}
장기 지원(LTS) 버전
역대 자바 버전 지원기간
| Release | GA Date(출시일) | Premier Support Until | Extended Support Until | Sustaining Support |
| 7 (LTS) | July 2011 | July 2019 | July 2022***** | Indefinite |
| 8 (LTS)** | March 2014 | March 2022 | December 2030***** | Indefinite |
| 9 (non‑LTS) | September 2017 | March 2018 | Not Available | Indefinite |
| 10 (non‑LTS) | March 2018 | September 2018 | Not Available | Indefinite |
| 11 (LTS) | September 2018 | September 2023 | September 2026 | Indefinite |
| 12 (non‑LTS) | March 2019 | September 2019 | Not Available | Indefinite |
| 13 (non‑LTS) | September 2019 | March 2020 | Not Available | Indefinite |
| 14 (non‑LTS) | March 2020 | September 2020 | Not Available | Indefinite |
| 15 (non‑LTS) | September 2020 | March 2021 | Not Available | Indefinite |
| 16 (non-LTS) | March 2021 | September 2021 | Not Available | Indefinite |
| 17 (LTS) | September 2021 | September 2026**** | September 2029**** | Indefinite |
| 18 (non-LTS)*** | March 2022 | September 2022 | Not Available | Indefinite |
| 19 (non-LTS)*** | September 2022 | March 2023 | Not Available | Indefinite |
| 20 (non-LTS)*** | March 2023 | September 2023 | Not Available | Indefinite |
| 21 (LTS)*** | September 2023 | September 2028 | September 2031 | Indefinite |
반응형
'Java > History' 카테고리의 다른 글
| 17버전 이상을 고려해야될 상황 (0) | 2024.12.16 |
|---|---|
| Java 갑작스런 버전 변화, 왜? (0) | 2024.12.16 |
| Java 15, 16 대표 코드 (0) | 2024.12.16 |
| Java 12~14 대표 코드 (0) | 2024.12.16 |
| Java 11 대표 코드 (0) | 2024.12.16 |