728x90 자바상속3 [JAVA] Sealed Classes : 상속의 경계를 정의하는 새로운 패러다임 객체 지향 프로그래밍(OOP)의 핵심 원칙 중 하나는 '상속'입니다. 하지만 자유로운 상속이 언제나 정답은 아닙니다. 때로는 설계자가 의도한 클래스들만 특정 클래스를 확장할 수 있도록 제한해야 할 필요가 있습니다. 이전까지 자바에서는 이를 구현하기 위해 final 키워드로 상속을 완전히 막거나, 패키지 프라이빗(package-private) 생성자를 사용하는 등 우회적인 방법을 사용해야 했습니다. Java 17에서 정식 도입된 Sealed Classes(봉인된 클래스)는 이러한 설계상의 제약을 언어 차원에서 우아하게 해결합니다. 본 포스팅에서는 Sealed Classes의 개념부터 실무 활용법, 그리고 왜 이것이 현대 자바 설계의 필수 요소가 되었는지 심도 있게 살펴보겠습니다.1. Sealed Class.. 2026. 1. 24. [JAVA] 자바의 뿌리, Object 클래스가 모든 객체의 정점에 서 있는 이유와 철학적 배경 자바(Java)를 처음 접하는 개발자든, 숙련된 시니어 개발자든 관계없이 우리는 항상 java.lang.Object라는 거대한 뿌리 위에 코드를 작성합니다. 우리가 명시적으로 extends를 선언하지 않아도 모든 클래스는 자동으로 Object를 상속받습니다. "왜 그래야만 하는가?"라는 질문은 자바의 설계 철학과 메모리 관리, 그리고 다형성의 핵심을 관통하는 아주 중요한 질문입니다. 오늘은 단순히 '자바의 문법'을 넘어, 왜 Object 클래스가 최상위 클래스로 설계되었는지 그 가치와 실무적 이점에 대해 심층적으로 분석해 보겠습니다. --- ## 1. 다형성의 일관성 확보 (The Power of Polymorphism)Object 클래스가 모든 클래스의 조상인 가장 큰 이유는 '모든 객체를 하나의 타입.. 2026. 1. 16. [JAVA] super와 super()의 완벽 분석: 부모 객체로 향하는 두 가지 통로 자바 프로그래밍에서 상속(Inheritance)을 공부하다 보면 필연적으로 마주치는 두 키워드가 있습니다. 바로 super와 super()입니다. 이름은 비슷하지만, 하나는 참조 변수이고 다른 하나는 생성자 호출문이라는 명확한 차이가 있습니다. 이 두 개념을 혼동하면 코드의 가독성이 떨어질 뿐만 아니라, 런타임에서 의도치 않은 버그를 발생시킬 수 있습니다. 오늘은 자바의 객체 지향 원리를 깊이 있게 이해하기 위해 super와 super()의 정의부터 실무 활용법, 그리고 주의사항까지 핵심 내용을 정리해 보겠습니다.1. super: 부모의 멤버에 접근하는 '참조 변수'super는 자식 클래스에서 부모 클래스로부터 상속받은 멤버(필드, 메서드)를 참조하는 데 사용되는 참조 변수입니다. 주로 부모 클래스의 멤.. 2026. 1. 15. 이전 1 다음 728x90