ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바(java) - 상속(inheritance) / extends
    Java & 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();
        }
    }
Designed by Tistory.