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