무지개 곰
무지개곰의 성장이야기
무지개 곰
250x250
  • 분류 전체보기
    • 블록체인 공부
      • BlockChain
      • Ethereum
    • IT공부
      • Java
      • JavaScript
      • HTML + CSS
      • React
      • 프로그래머스 (TypeScript)
    • 독서
    • 영어 공부
      • 1일 1 작문
      • 영어 짧은 글
    • 홍보
hELLO · Designed By 정상우.
무지개 곰

무지개곰의 성장이야기

[Java] Java의 상속 이해하기
IT공부/Java

[Java] Java의 상속 이해하기

2022. 7. 10. 12:00
728x90

상속이란 무엇인가?

자바에는 상속이란 기능이 있는데 상속의 사전적인 뜻처럼 부모로부터 물려받는 기능을 의미합니다. 부모 클래스는 일반적인 객체들을 가지게 됩니다. 아래의 예시처럼 캐릭터를 만들 때 이름과 레벨은 꼭 포함되지만 직업마다 특징은 다릅니다. 이럴 때 이름과 레벨을 부모 클래스에 두고 상속을 해주는 방식으로 코드를 이용합니다.

public class Character{ //부모클래스
    public String name;
    public int level;
}

public class Warrior extends Character{ //자식클래스
    //String name;
    //int level;
    //상속을 받았기에 name과 level 객체변수를 따로 선언 안해도 됩니다. 
    public int strPower;
    public void info(){
        System.out.println("이름:"+this.name);
        System.out.println("레벨:"+this.level);
        System.out.println("strPower:"+strPower);
    }
}

public class Wizard extends Character{ //자식클래스
    public int magicPower;
    public void info(){
        System.out.println("이름:"+this.name);
        System.out.println("레벨:"+this.level);
        System.out.println("magicPower:"+magicPower);
    }
}

클래스를 상속하기 위해서는 extends라는 키워드를 사용해야 합니다. 위의 예시에서는 Character클래스가 부모 클래스가 되고 Warrior와 Wizard클래스는 자식 부모로서 Character클래스의 객체 변수를 상속받습니다. 상속을 받은 객체 변수는 자식 클래스에서 사용할 수 있습니다.

public class Game{
    public static void main(String[] args){
        Warrior warrior = new Warrior();
        warrior.name = "홍길동";
        warrior.level = 20;
        warrior.strPower=100;
        warrior.info;
        /*출력
        이름:홍길동
        레벨:20
        strPower:100
        */
    }
}

위와 같이 warrior를 생성하고 name과 level를 warrior.name과 warrior.level처럼 warrior의 객체 변수로 사용할 수 있습니다. 반대로 자식 클래스에 있는 메서드 혹은 객체 변수는 부모 클래스에서 사용할 수 없습니다.

 

728x90
저작자표시 비영리 변경금지 (새창열림)
    'IT공부/Java' 카테고리의 다른 글
    • [Java] Java의 추상 이해하기
    • [Java] Java의 다형성 이해하기
    • [Java] Java의 ArrayList 이해하기
    • [Java] Java의 객체 배열 이해하기
    무지개 곰
    무지개 곰
    java solidity react javascript등 프로그래밍 공부 기록

    티스토리툴바