- 캡슐화(Encapsulation)
- 객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것
- 외부 객체는 객체 내부 구조를 알지 못하고 제공하는 필드와 메소드만 이용 가능하다.
- 캡슐화 사용 이유는 외부에서 객체가 손상되지 않도록 하는 것이다.
- 캡슐화를 위해 접근 제한자(Access Modifier)을 사용한다.
- 상속(Inheritance)
- 부모 객체의 필드와 메소드를 자식 객체에게 물려주는 것
- 자식 객체는 부모 객체를 확장하여 추가적인 필드와 메소드를 가질 수 있다.
- private가 default 접근을 갖는 필드와 메서드는 상속 불가하다. 주로 protected 사용
- extends 키워드
- 자식 클래스가 상속할 부모 클래스를 지정하는 키워드
- public class 자식클래스 extends 부모클래스 { … } 형태
- 자바는 단일 상속이기 때문에 여러 개의 부모 클래스를 상속받을 수 없다.
- Override
- 부모 클래스에서 상속 받는 메소드를 자식 클래스에서 재정의하는 것
- 오버라이드 조건은 반환타입, 함수이름, 매개변수가 동일해야 한다.
- 자식 클래스에서 메소드가 재정의된다면, 부모 클래스의 메소드는 무시된다.
- 메소드 재정의 조건
- public을 default나 private로 수정 불가
- default는 public으로 수정 가능
- Exception throws 불가
- super
- 부모 클래스의 생성자 함수 호출
- super(매개변수) 식 호출이면 부모 클래스의 해당 매개변수의 필드 생성자를 호출한다.
- super와 this 정리
- this.
- 자기 클래스의 필드/메소드 접근
- this()
- 자기 클래스의 생성자 함수 호출
- super.
- 부모 클래스의 필드/메소드 접근
- super()
- 부모 클래스의 생성자 함수 호출
- this.
- final 키워드
- final 필드
- 수정 불가 필드 (상수 선언)
- 값 대입 시 다시 대입 불가
- final 클래스
- 부모 클래스로 사용 불가 (상속 불가)
- final 메소드
- 자식 클래스가 재정의할 수 없는 메소드 (오버라이딩 불가)
- final 필드
728x90
'Java' 카테고리의 다른 글
[Java] 중첩 클래스, Wrapper 클래스, API 메소드, 자바 관련 단어들 (0) | 2024.03.18 |
---|---|
[Java] Abstract, Interface (0) | 2024.03.13 |
[Java] 접근 제어자, 생성자, 싱글톤 패턴 (0) | 2024.03.13 |
[Java] static, void, this (0) | 2024.03.13 |
[Java] 객체(Object), Class, Method (0) | 2024.03.13 |