본문 바로가기
IT_Developers/JAVA

JAVA - 오버라이딩(Overriding)이란? / 예제 소스

by 고코더 2020. 3. 11.

오버라이딩을 알아보자


안녕하세요.
고코더 입니다.


오버라이딩은 상위 클래스에서 가지고 있는 메소드를 하위 클래스에서 메소드에서 재정의해서 사용할 수 있는걸 말합니다. 다시 말하면 상속에서 나온 개념입니다. 부모 클래스의 메소드를 자식 클래스의 메소드로 정의하는 것입니다.


오버라이딩시에 메소드의 이름, 매개변수, 리턴 값이 같아야 한다. 



book.java, bookstore.java : 오버라이딩 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public class Book{
   
    public String name;
    public int price;
   
    public void print(){
        System.out.println("책 이름 "+this.name+ ", 가격은" + this.price);
    }   
}
 
public class Bookstore extends Book{
   
    String publisher; // 출판사
   
    public void print(){
        System.out.println("책 이름은 "+this.name +" 가격은" + this.price + "출판사는 "+this.publisher);
    }
}
cs

book 클래스에 있는 print 메소드를 
bookstore 클래스에서 print로 오버라이딩 하여 새롭게 출판사  이름까지 출력할 수 있게 합니다. 상위 클래스에서 지정한 메소드를 상속후에 다시 메소드를 재정의 합니다.


gocoder.java : 사용하는 클래스


1
2
3
4
5
6
7
8
9
10
11
12
13
public class gocoder {
 
    public static void main(String[] args) {
        
     Bookstore bs = new Bookstore();
     // 변수 설정   
     bs.name = "아메리카노 한잔으로 배우는 Node.js";
     bs.price = 4100;
     bs.publisher="고코더";
 
     bs.print();
    }
}
cs

객체를 생성하여 오바라이딩한 print를 사용하는 부분


마무리



부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 오버라이딩 이다.


댓글