오버 라이딩(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 |