캡슐화란?
- 관련있는 변수나 메서드를 하나의 클래스로 묶어서 외부에서 쉽게 접근하지 못하도록 하는 것
- 정보 은닉이 목적
- 객체에 직접적인 접근을 막고 객체가 제공하는 필드나 메소드를 통해서만 접근이 가능
다형성이란?
- 하나의 객체가 여러 가지 타입을 가질 수 있는 것
- 자바에서는 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현
- 큰 객체 안에 작은 객체를 넣어서 여러 형태로 변환해 사용하는 것
- 부모 타입의 자식 객체
class Parent {
void call() { System.out.println("부모") }
}
class Child extends Parent {
void call() { System.out.println("자식") }
}
...
Parent pa = new Parent(); // 허용
Child ch = new Child(); // 허용
Parent pc = new Child(); // 허용
Child cp = new Parent(); // 오류 발생.
pc.call(); //자식 메소드 출력
상속이란?
- 부모 클래스에서 정의된 필드나 메서드를 자식 클래스가 물려받는 것
- Extends 키워드 사용
- 부모 클래스를 super class, 자식 클래스를 sub class라고 부름
- JAVA에서는 다중상속을 지원하지 않음. 즉, 두개 이상의 부모를 가질수 없음 → 다중 인터페이스 구현은 가능
- 주 목적은 기존의 클래스를 재사용함으로서 불필요한 코드를 줄임
'Develop > Java' 카테고리의 다른 글
객체지향 프로그래밍이란? (0) | 2021.10.31 |
---|---|
[JAVA] 오버로딩 VS 오버라이딩 (0) | 2021.10.31 |
[JAVA] 코딩테스트 자주 사용하는 함수 (0) | 2021.10.16 |
[JAVA] List Collection (0) | 2021.10.04 |
[JAVA] 자바란? (0) | 2021.10.04 |
댓글