| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- JavaScript #인라인 #인터널 #익스터널 #데이터입출력
- JavaScript #자바스크립트 #선택자 #HTML태그접근 #JS
- JavaScript #자바스크립트 #복습 #배열 #Array
- 정리
- JavaScript #예제 #복습 #Web #웹 #개발자가되고파ㅜㅜ
- WEB
- 서블릿기초 #servlet #java #webprogramming
- 페이징처리예제
- Spring
- 예제
- 데이터조회예제
- fremework
- List데이터조회
- 특징및기본구조
- mybatis자료형 #참고자료
- 데이터매핑
- JavaScript #선언적함수 #익명함수 #화살표함수 #함수선언방법 #복습
- mybatis
- 동적sql
- Java #JDBC #Mybatis #동적SQL
- Java
- Java #자바 #초보개발자 #다형성 #동적바인딩 #instanceof #학습 #요약정리 #복습
- Java #자바 #인터페이스 #implements #다형성 #interface #복습 #정리 #나만의공부
- 데이터베이스 #DataBase #Oracle #DB #DataBase개요
- 어노테이션
- 복습
- 프레임워크
- springframework
- Java #Web #공부 #복습 #Servlet #서블릿 #포워드 #sendRedirect #dispatcher
- 스프링
- Today
- Total
개발군싹
[Java] 상속(Inherit) 본문

상속이란(Inherit)?
상속이란 쉽게 말해 클래스를 재사용하는 것이다.
다른 클래스가 가지고 있는 멤버(필드,메소드)들을 새로 작성할 클래스에서 직접 선언하지 않고 상속을 받아 클래스가 자신의 멤버처럼 사용할 수 있는 기능이다.
장점
- 보다 적은 양의 코드로 새로운 클래스 작성이 가능하다.
- 코드를 공통적으로 관리하기 때문에 코드 추가 및 변경에 용이하다.
- 코드의 중복을 제거하여 프로그램의 생산성/유지보수에 크게 기여한다.
특징
모든 클래스는 Object Class의 후손클래스이다. (Object Class를 상속받고 있다.)
이 말은 즉 Object Class가 제공하는 메소드들을 오버라이딩하여 메소드 재구현이 가능하다.
부모클래스의 생성자, 초기화 블록은 상속되지 않는다.
자식 클래스 생성시 부모 클래스 생성자가 먼저 실행된다.
자식 클래스 생성자 안에서 부모 클래스 생성자를 호출하고 싶다면 'super()'를 활용하여 호출할 수 있다
부모의 private 멤버는 삭속은 되지만 직접 접근이 불가능하다.
자식 클래스 생성 시 생성자에서 super()를 이용하여 부모의 private 멤버값에 접근하거나 setter / getter를 이용하여 접근할 수 있다.
상속 방법 및 표현식
클래스 간의 상속 시 'extends' 키워드를 사용할 수 있다.
public class '자식클래스명' extends '상속할 부모 클래스명'
단일상속(Single Inheritance)
Java에서 자식클래스는 하나의 부모클래스만 상속 받을 수 있다.
여러 부모클래스를 상속 받을 경우 서로 다른 부모클래스로부터 상속 받은 멤버, 메소드 등의 충돌이 발생 할 수 있다.
이때문에 Java에서 상속은 단일상속만 가능하다.
오버라이딩
오버라이딩이란 자식 클래스가 상속받은 부모 클래스의 메소드를 재정의 하는것이다.
자식 객체를 통한 오버라이딩 메소드 실행 시 자식이 가진 메소드가 우선권을 가지고 실행된다.
메소드 헤드라인 위 반드시 Annotation, @Override를 표시한다.
접근 제어자를 부모것보다 같거나 넓은 범위로는 가능하나 좁은 범위로는 가능하지 않다.
오버라이딩 성립조건
- 부모 클래스의 메소드와 자식 클래스의 메소드 이름이 동일해야한다.
- 매개변수의 개수와 타입이 동일해야한다.
- 리턴 타입 또한 동일 해야한다.
- private 메소드는 오버라이딩이 불가능하다.
- final 메소드는 오버라이딩이 불가능하다.

'Java' 카테고리의 다른 글
| [Java] 인터페이스(Interface) (0) | 2023.09.23 |
|---|---|
| [Java] 다형성(Polymorphism) (0) | 2023.09.21 |
| [Java] 객체 배열(Object Array) (0) | 2023.09.17 |
| [Java]객체(2) - 생성자(Contructor)와 this (0) | 2023.09.15 |
| [Java] 객체란(1)? (0) | 2023.09.15 |