-
자바(java) - 상속(inheritance) / extendsJava & Spring 2023. 12. 8. 17:00
상속이란?
상속이란 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의
한번 작성한 코드가 재사용이 필요하다면, 변경사항만 코드로 작성하므로 상대적으로 적은 양의 코드를 작성할 수 있게 됨
이때 기존에 정의되어 있던 클래스를 부모 클래스 또는 상위클래스, 기초 클래스 라고 함
상속을 통해 새롭게 작성되는 클래스를 자식 클래스 & 하위 클래스, 파생 클래스 라고 함
상속의 특징
- 코드와 클래스가 많아질수록 용이
- 부모클래스로부터 매개변수와 메서드를 물려받음 또한 물려받은 메서드를 수정할 수 있음
- 새로운 필드와 메서드 추가가능
- 클래스 간의 계층 구조를 구성함으로써 다형성의 문법을 마련함
- 여러 클래스는 상속받을 수 없음
상속의 형식
상속은 extends를 이용하여 사용함
ex)
class Fruits{} class Apple extends Fruits{} class Orange extends Fruits{}
- 부모클래스는 자식클래스에 포함된 것으로 볼 수 있음
- 부모클래스에 필드를 추가하면, 자식 클래스에도 자동으로 추가가 된 것 처럼 작동
- 자식 클래스는 부모클래스의 필드와 메서드만이 상속되며, 생성자와 초기화 블록은 상속되지 않음
상속 ex)
class Fruit { String name; public void example() { System.out.println("부모 클래스의 메서드 입니다."); } } class Apple extends Fruit { String name; public Apple(String name) { this.name = name; } public void name() { System.out.println(name + "입니다. 자식 클래스의 메서드 입니다."); } } class Orange extends Fruit { @Override public void example() { System.out.println("또다른 자식 클래스의 메서드 입니다."); } } public class EX { public static void main(String[] args) { Fruit Banana = new Fruit(); Banana.example(); Apple Melon = new Apple("체리"); Melon.example(); //부모 클래스에 정의된 example()메서드 호출. Melon.name(); //자식 클래스에 정의된 name()메서드 호출. Orange Water = new Orange(); Water.example(); } }
'Java & Spring' 카테고리의 다른 글
자바 클래스 (0) 2024.06.11 JVM(Java Virthal Machine) (0) 2023.12.28 오버로딩 (Overloading) , 오버라이딩 (Overriding) 차이점 (0) 2023.12.26 자바(java) 생성자 (0) 2023.12.04 자바 class, instance, method 개념 및 사용예제 (1) 2023.12.01