본문 바로가기

Java SE/Override, Overload

Override, Overload

class  OverloadTest {
 public static void main(String[] args) {
  Sub.add(10,10);
  Sub.add(10.0, 10.0);
 }
}

class Super {
 public static int add(int a, int b) {
  return a+b;
 }
}

class Sub extends Super {
 /* 오버라이드 적용*/
 public static int add(int a, int b) {
  System.out.println(a+"+"+b+"="+(a+b));
  return a+b;
 }
 /* 오버로드 적용*/
 public static double add(double a, double b) {
  System.out.println("add_double");
  return a+b;
 }
 /* 오버라이드가 적용된 것도 아니고, 오버로드가 적용된 경우도 아니면서
 *  동일한 이름의 메소드를 선언할 수는 없다. 그러므로 에러발생
 */
 public static String add(int a, int b) {
  return a+b+"";
 }
}