상속

BuZZLightyear·2023년 2월 27일
0

정리

목록 보기
3/47

상속이란 ?

기존의 클래스를 재활용 하여 새로운 클래스를 작성하는 자바의 문법 요소
Ex) 두 클래스를 상위클래스와 하위클래스로 나누어 상위 클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스와 공유 하는 것을 의미함.

하위 클래스의 멤버 개수는 항상 상위 클래스보와 같거나 많다.

Programmer, Dancer, Singer 모두 Person 클래스의 멤버를 포함하고 있으며 서로 다른것은 coding(), dancing(), singing() 뿐이다. 그러므로 Person이라는 상위 클래스에 3개의 하위 클래스이다.

상속을 사용하는 이유 ?

  1. 코드의 재사용을 통해 보다 적은 양의 코드로 새로운 클래스를 작성 할 수 있어 코드의 중복을 제거할 수 있음.
  2. 다형적 표현이 가능
    "프로그래머는 프로그래머이다", "프로그래머는 사람이다" 처럼 하나의 객체가 여러가지로 표현 될수있는 것을 다형성이라고함

주의

자바의 객체지향프로그램에서는 단일 상속만 허용, 다중상속은 허용하지않음.(다중 상속과 비슷한 효과를 낼 방법은 있음)

상속 사용법

하위 클래스명 extends 상위 클래스명

public class Person {
    String name;
    int age;

    void learn() {
        System.out.println("공부를 합니다");
    }
    void walk(){
        System.out.println("걷습니다");
    }
    void eat(){
        System.out.println("밥을 먹습니다");
    }
}
public class Programmer extends Person {

    String companyName;
    void coding() {
        System.out.println("코딩을 합니다");
    }
}
    public static void main(String[] args) {

        Person p = new Person();
        p.name = "버즈";
        p.age = 29;
        p.learn();
        p.eat();
        p.walk();
        System.out.println(p.name);

        Programmer pg = new Programmer();
        pg.name = "라이트이어";
        pg.age = 25;
        pg.learn();
        pg.coding();
        System.out.println(pg.name);

    }
공부를 합니다
밥을 먹습니다
걷습니다
버즈
공부를 합니다
코딩을 합니다
라이트이어
profile
버즈라이트이어

0개의 댓글