상속
inheritance
기존의 클래스를 확장하여 새로운 클래스를 정의하는 메커니즘을 말한다.
부모가 자식에게 재산을 물려주듯
미리 작성해둔 클래스의
1.속성과 2.메서드를 물려줄 수 있다.
부모클래스(상위,수퍼)
자식클래스(하위,차일드)
기능이 더 큰 쪽은 자식클래스 쪽이다.
(부모기능 + 자식기능)
상속 개념은 기존의 코드를 변경하지 않고 활용하고 싶을 때 활용한다.
package com.inheritance;
/**
* 4.21 2강 상속개념 1
*
* 선임이 작성한 코드라고 가정한다
*/
public class A {
String name;
int height;
int weight;
int age;
}//end of A
package com.inheritance;
/**
* 4.21 2강 상속개념 2
*/
public class B {
//선임이 작성한 코드 예
String name;
int height;
int weight;
int age;
/*
선임이 작성한 코드는 그대로 두고
기존 코드를 복붙하여
추가로 필드를 선언해서 만든다
*/
int level;
String nickName;
/*
하지만 우리가 상속이라는 기법을 활용한다면
더 편하게 작업을 할 수 있다.
*/
}//end of B
package com.inheritance;
/**
* 4.21 2강 상속개념 3
*
* 선임이 작성한 코드를 따라쓴다고 가정한다
*
* 만약 상속이란 개념을 이해한다면
* 기존 클래스의 속성과 메서드를 상속받아 작업할 수 있다.
*/
public class C extends A {
/*
⭐C extends A
C가 A에 선언된 필드를 물려받겠다는 뜻이다.
이때 A클래스는 부모클래스가 되고
C클래스는 자식클래스가 된다.
💀단, 자바에서는 단일상속만 인정된다.
충돌을 방지하기 위해서다.
*/
int level;
String nickName;
}//end of C
⭐C extends A
C가 A에 선언된 필드를 물려받겠다는 뜻이다.
이때 A클래스는 부모클래스가 되고
C클래스는 자식클래스가 된다.
💀단, 자바에서는 단일상속만 인정된다.
충돌을 방지하기 위해서다.
package com.inheritance;
/**
* 4.21 2강 상속개념 4
*/
public class CMainTest1 {
//main = 코드의 진입점
public static void main(String[] args) {
//A와 C는 상속관계
C c = new C();
c.name = "C클래스입니다";
c.height = 100;
c.weight = 20;
c.age = 10;
c.level = 1;
c.nickName = "자식 C클래스";
}//end of main
}//end of class
'Java' 카테고리의 다른 글
상속과 메서드 오버라이드를 통한 쇼핑몰 회원정보 수정 (0) | 2025.04.21 |
---|---|
메서드 오버라이드 Method Override, 상속받은 메서드 덮어쓰기 (1) | 2025.04.21 |
메서드 오버로딩 Method Overloading, 자바의 편리한 기능 (0) | 2025.04.21 |
실수) sysout 안에 sysout을 넣어 발생한 오류 (0) | 2025.04.18 |
배열 Array 을 활용한 전화번호부 만들기 (0) | 2025.04.18 |