JAVA 개념 4-1 - 상속과 오버라이딩

2023. 1. 3. 14:44· JAVA/JAVA 개념
목차
  1. 상속(Inheritance)
  2. 오버라이딩(Overriding)

상속(Inheritance)

 

: 상속은 클래스 간의 상하 관계로 추상적인 슈퍼 클래스(부모 클래스)로부터 서브 클래스(자식 클래스)를 만드는 것으로 상속이라는 관계를 통해 계층구조를 형성합니다.

 

 클래스 상속의 특징 :

  •  슈퍼 클래스에서 정의된 필드와 메서드를 참조받습니다.
  • 새로운 필드나 메서드를 추가할 수 있습니다.
  • 슈퍼 클래스에서 물려받은 메서드를 수정할 수 있습니다.(오버라이딩)
  • 동일 슈퍼 클래스를 상속하는 모든 서브 클래스는 타입 호환이 됩니다.

 상속을 이용하면 코드의 재사용이 가능해지고 부모 클래스 레벨에서 호환되는 서브 클래스를 사용해 다형성의 기반을 마련할 수 있습니다.

 

 

오버라이딩(Overriding)

 

: 슈퍼 클래스로부터 상속받은 메서드를 다시 정의하는 것을 말합니다. 메서드의 이름과 리턴 타입, 인자 등이 모두 동일해야 하며 다를 경우 새로운 메서드가 추가되는 형식이 됩니다.

 오버라이딩을 통해 객체지향의 특징 중 하나인 다형성 구현이 가능해집니다. 예를 들어 교통수단 클래스가 있고 brand()라는 메서드가 있다고 했을 때 교통수단 클래스를 상속받는 스포츠카와 오토바이 클래스를 만들 경우 brand() 메서드의 오버라이딩을 통해 서로 다른 동작이 가능하게 할 수 있습니다.

 

class Vehicle {
	void brand() {
    	System.out.println("KIA");
    }
}

class SportsCar extends Vehicle {
	void brand() {
    	System.out.println("FERRARI");
    }
}

class Motorcycle extends Vehicle {
	void brand() {
    	System.out.println("BMW");
    }
}

 

 다음과 같이 Vehicle 클래스 타입으로 SportsCar 클래스의 인스턴스를 생성해 brand() 메서드를 호출하면 FERRARI가 출력됩니다.

Vehicle vehicle = new SportsCar();
vehicle.brand();	// FERRARI

 SportsCar 대신 Motorcycle 인스턴스를 생성하면 동일 코드에서 BMW가 출력되어 동일한 구조에서 다른 동작이 실행되는 다형성을 구현할 수 있습니다.

 

 

'JAVA > JAVA 개념' 카테고리의 다른 글

JAVA 개념 4-3 - 패키지와 제어자  (0) 2023.01.19
JAVA 개념 4-2 - 추상클래스와 인터페이스  (0) 2023.01.12
JAVA 개념 3-4 - 키보드 입력과 로깅  (0) 2022.11.30
JAVA 개념 3-3 - 배열  (0) 2022.11.25
JAVA 개념 3-2 - 반복문  (0) 2022.11.24
  1. 상속(Inheritance)
  2. 오버라이딩(Overriding)
'JAVA/JAVA 개념' 카테고리의 다른 글
  • JAVA 개념 4-3 - 패키지와 제어자
  • JAVA 개념 4-2 - 추상클래스와 인터페이스
  • JAVA 개념 3-4 - 키보드 입력과 로깅
  • JAVA 개념 3-3 - 배열
kms152000
kms152000
kms152000
백엔드 공부
kms152000
전체
오늘
어제
  • 분류 전체보기 (208)
    • JAVA (32)
      • JAVA 개념 (13)
      • 생활코딩 JAVA 입문 수업 (19)
    • Frontend (0)
      • HTML (0)
      • CSS (0)
      • JS (0)
    • Backend (2)
      • Spring 인강 (2)
    • 코딩 테스트 (154)
      • JAVA - 백준 단계별로 풀어보기 (110)
      • Python - 백준 단계별로 풀어보기 (44)
    • 자격증 (12)
      • 정보처리기사 인강 - 필기 (5)
      • 정보처리기사 인강 - 실기 (7)
    • Database (0)
      • MySQL (0)
      • Oracle (0)
    • 개발 환경 (5)
      • JAVA (1)
      • Eclipse (1)
      • Eclipse 오류 해결 (1)
      • Apache Tomcat (1)
      • IntelliJ (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • hELLO 티스토리 스킨

인기 글

태그

  • 생활코딩
  • Eclipse 환경 설정
  • 자바 컴파일 순서
  • 논리연산자
  • java 메서드
  • 제어자
  • asList
  • 백준 10998번 자바
  • copyOf
  • 비트 연산자
  • Eclipse 한글
  • Java
  • 백준 자바 10869번
  • 자바 개념
  • JAVA 변수
  • 백준 자바 1001번
  • 백준 자바 1008번
  • 관계연산자
  • 백준 1000번 자바
  • 사칙 연산
  • 자바 기본 문법
  • 3항 연산
  • 다차원 배열
  • 백준
  • 대입 연산
  • 로깅 프레임워크
  • 이클립스 환경 설정
  • Eclipse console 한글 오류
  • 키보드 입력과 로깅
  • 자바

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
kms152000
JAVA 개념 4-1 - 상속과 오버라이딩
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.