본문 바로가기
WEB/Java

오버라이딩(Overriding), 오버로딩(Overloading)

by 노랑파랑 2017. 1. 3.
반응형







오버 라이딩(Overriding)

▷상위 클래스의 기능을 하위 클래스가 상속 받아 기능의 동작 방법을 변경하는 것.





조건

▷메소드의 리턴 타입이 같아야 한다.

▷메소드의 이름이 같아야 한다.

▷메소드의 매개변수의 숫자와 데이터 타입 그리고 순서가 같아야 한다.





// 상위 클래스
class parents{
int x, y;

public void setXY(int x, int y){
this.x = x;
this.y = y;
}

public void sum(){
System.out.println(this.x + this.y);
}


public void avg(){
System.out.println(this.x + this.y / 2);
}
}


//하위 클래스 (상속)

class child extends parents{ //오버라이딩 public void sum(){ System.out.println("x와 y의 합은->"+(this.x + this.y)+"입니다."); } public void sub(){ System.out.println(this.x - this.y); } } public class overriding{ public static void main(String[] args){ child c1 = new child(); c1.setXY(10, 20); c1.sum(); c1.sub(); c1.avg(); } }


실행결과

x와 y의 합은->30입니다.

-10

15







오버 로딩(Overloading)

▷메소드의 이름은 같지만 시그니처는 다른 메소드를 중복으로 선언할 수 있는 방법

▷매개변수가 다르다면 이름이 같아도 서로 다른 메소드가 되고, 매개변수가 같지만 리턴타입이 다르다면 오류가 발생한다.





class parents{ int x, y; int z; public void setOp(int x, int y){ this.x = x; this.y = y; } //오버 로딩 public void setOp(int x, int y, int z) >this.x = x; this.y = y; this.z = z; }


반응형

'WEB > Java' 카테고리의 다른 글

String  (0) 2017.01.03
제네릭  (0) 2017.01.03
Map 인터페이스  (0) 2016.12.14
List 인터페이스  (0) 2016.12.14
Collection 인터페이스  (0) 2016.12.14