클래스와 다형성 개념 정리
1. 클래스 (Class)
- 정의: 객체를 생성하기 위한 설계도 또는 틀.
- 구성 요소:
- 생성자 (Constructor): 객체 생성 시 호출되는 특별한 메서드.
- 메서드 (Method): 클래스 내부에서 동작을 정의하는 함수.
- 변수 (Field): 클래스 내에서 상태나 값을 저장하는 공간.
2. 다형성 (Polymorphism)
- 정의: 하나의 객체가 여러 타입으로 동작할 수 있는 성질.
- 적용:
- 부모 클래스의 참조 변수로 자식 클래스의 객체를 참조할 수 있다.
- 오버라이딩 (Overriding): 부모 클래스의 메서드를 자식 클래스에서 재정의하여 사용.
- 형변환 (Type Casting): 부모 타입 → 자식 타입으로 변경할 수 있으며, 이를 다운캐스팅 (Downcasting)이라 한다.
3. 생성자
- 정의: 객체 생성 시 호출되는 메서드로, 클래스 이름과 동일하며 반환 타입이 없다.
- 역할: 객체의 초기화, 필요한 값 설정.
- 특징:
- 오버로딩 가능 (동일 이름, 다른 매개변수).
4. 스테틱과 인스턴스 (Static vs. Instance)
- 스테틱 (Static)
- 클래스 자체에 속하는 요소로, 객체 생성 없이 사용 가능.
- 클래스 이름으로 직접 호출 (클래스 변수, 클래스 메서드).
- 모든 객체가 공유한다.
- 예제:
class Example { static int count = 0; } System.out.println(Example.count); // 클래스 이름으로 호출 - 인스턴스 (Instance)
- 각 객체가 개별적으로 가지는 요소.
- 객체 생성 후 사용 (인스턴스 변수, 인스턴스 메서드).
- 객체마다 독립적으로 존재.
- 예제:
class Example { int value = 0; } Example obj = new Example(); System.out.println(obj.value); // 객체를 통해 호출
5. 다형성에서의 참조
- 참조 변수의 역할: 부모 타입으로 자식 객체를 참조할 수 있다.
- 예제:
class Parent {}
class Child extends Parent {}
Parent p = new Child(); // 부모 타입으로 자식 객체 참조
6. 오버라이딩 (Overriding)
- 정의: 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것.
- 조건:
- 메서드 이름, 매개변수, 반환 타입이 동일해야 한다.
- 접근 제어자는 부모 클래스보다 넓거나 동일해야 한다.
7. 다운캐스팅 (Downcasting)
- 정의: 부모 타입의 참조 변수를 자식 타입으로 변환하는 것.
- 예제:
Parent p = new Child();
Child c = (Child) p; // 다운캐스팅
8. 오버로딩 (Overloading)
- 정의: 동일한 이름의 메서드를 여러 개 정의할 수 있는 기능.
- 특징:
- 매개변수의 타입, 개수, 순서가 달라야 한다.
'JS' 카테고리의 다른 글
| 25.05.20 시험 대비 (0) | 2025.05.19 |
|---|---|
| 2~3장 예상 문제 (0) | 2025.05.12 |
| [25.05.09 롤링 대비] 5장 배열~6장 클래스 (0) | 2025.05.09 |
| [25.05.09 롤링 대비] 2장~4장 (0) | 2025.05.08 |
| 전체 반복 구조 (구구단 틀)/System.out.printf과 System.out.println의 차이 (0) | 2025.05.01 |