본문 바로가기
Develop/Java

[JAVA] 캡슐화 & 다형성 & 상속

by 루시킴 2021. 10. 31.

캡슐화란?

  • 관련있는 변수나 메서드를 하나의 클래스로 묶어서 외부에서 쉽게 접근하지 못하도록 하는 것
  • 정보 은닉이 목적
  • 객체에 직접적인 접근을 막고 객체가 제공하는 필드나 메소드를 통해서만 접근이 가능

 

다형성이란?

  • 하나의 객체가 여러 가지 타입을 가질 수 있는 것
  • 자바에서는 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현
  • 큰 객체 안에 작은 객체를 넣어서 여러 형태로 변환해 사용하는 것
  • 부모 타입의 자식 객체
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

댓글