본문 바로가기
Back-end/Java

[Java] 상속 (Inheritance)

by 발담그는블로그 2021. 1. 5.

OOP (Object Oriented Programming)

객체 지향 프로그래밍. 구성 부분 단위를 클래스로 쪼개어 구성. 
클래스 = 설계도, 인스턴스 = 설계도에 의해 구현된 개체

 

OOP 특징

- 캡슐화: 목적을 위해 필요한 변수나 메소드를 하나로 묶는것
- 정보은닉: public, private을 통해 접근 제어
- 추상화: 객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법
- 다형성: 형태가 같은데 다른 기능을 하는 것. 코드의 재사용을 위해.
  오버라이딩(Overriding): 자식 클래스가 부모 클래스를 상속받고나서, 자식 클래스에서 자신의 입맛대로 다시 재정의해서 사용하는 것 
  오버로딩(Overloading): 같은 이름의 메서드가 다른 용도로 사용됨.
- 상속(Inheritance): 기존 상위클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념. 
- 동적 바인딩

상속

* Extends
- 부모에서 선언 및 정의
- 자식에서 메소드, 변수 그대로 사용할 수 있음
- 다중 상속 x. 부모클래스 두개 이상 존재 x.
- 일반 클래스와 abstract 클래스 상속에 사용됨
- class가 class, interface가 interface 상속 받을 땐 extends 사용

* Implements
- 부모는 선언만 함
- 자식에서 정의하며, 자식에서 오버라이딩(재정의)해서 사용함
- 다중 상속 지원
- interface 상속에 사용됨
- class가 interface를 사용할 땐 implements를 사용하지만, interface가 class 사용할 땐 implements를 사용할 수 없다
- implements한 클래스는 implements의 내용 다 사용해야 한다

* Abstract
- extends와 interface 혼합
- extends로 하되 몇가지는 추상 메소드로 구성되어 있음

출처: velog.io/@hkoo9329/OOPObject-Oriented-Programming-%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%9D%B4%EB%9E%80

반응형

'Back-end > Java' 카테고리의 다른 글

[Java] Mac Java(JDK) 여러 버전 사용하는 방법  (0) 2023.12.30