추상 클래스 & 봉인 클래스
·
Backend/JAVA
📘 추상사전적 의미의 추상(abstract)은 실체 간에 공통되는 특성을 추출한 것추상 클래스객체를 생성할 수 있는 클래스를 실체 클래스라고 한다면, 이런 클래스들의 공통적인 `필드`나 `메소드`를 추출해서 선언한 클래스를 추상 클래스라고 함예시 새, 곤충, 물고기는 동물이라는 공통적인 특성을 가짐실체 클래스 = 새, 곤충, 물고기추상 클래스 = 동물추상 클래스는 `new 연산자`를 사용하여 객체를 직접 생성할 수 없다.추상 클래스를 사용하는 이유 ❓1. 공통 기능을 묶어서 코드 중복 방지여러 자식 클래스에 공통된 필드나 메서드를 추상 클래스에 정의해서, 코드의 재사용성과 유지보수성을 높일 수 있음.abstract class Animal { String name; void breathe()..
상속 관계에서 타입 변환의 이유와 사용 목적
·
Backend/JAVA
📘 상속 관계에서 타입 변환이 중요한 이유 (업캐스팅과 다운캐스팅)객체지향 프로그래밍(OOP)을 공부하다 보면, "왜 굳이 자식 객체를 부모 타입으로 참조하지?"라는 질문이 들 수 있다.이번 글에서는 상속 관계에서 자주 사용되는 업캐스팅(upcasting) 과 다운캐스팅(downcasting) 의 개념과 실제 사용 사례를 정리한다.1. 업캐스팅이란?업캐스팅은 자식 클래스의 객체를 부모 클래스 타입으로 참조하는 것을 의미합니다.Animal a = new Dog(); // 업캐스팅이렇게 하면 부모 클래스에 정의된 멤버만 접근할 수 있지만, 실제 객체는 자식 객체이기 때문에 오버라이딩된 메서드는 자식 클래스의 것이 실행됩니다.왜 업캐스팅을 쓸까?다형성(polymorphism) 구현의 핵심입니다.다양한 자식 ..