ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] Overloading과 Overriding의 차이
    JAVA 2020. 3. 31. 15:42
    728x90

    Overloading

    • 두 메소드가 같은 이름을 갖고 있지만 인자의 수나 자료형이 다른 경우
    • 조건
      • 메소드 이름이 같아야함
      • 리턴형이 같아도 되고 달라도됨
      • 파라미터 개수가 달라야함
      • 파라미터 개수가 같을 경우 데이터 타입이 달라야함
    • ex)
    public void test(int a) {...}
    public void test(int a, int b) {...}
    public void test(String a) {...}

     

    Overriding

    • 상위 클래스의 메소드와 이름이 같은 함수를 하위 클래스에 재정의
    • 조건
      • 오버라이드 하고자 하는 메소드가 상위 클래스에 존재해야함
      • 메소드 이름이 같아야함
      • 메소드 파라미터 개수, 파라미터 자료형이 같아야함
      • 메소드 리턴형이 같아야함
      • 상위 메소드와 동일하거나 내용이 추가되어야함
      • static 메소드는 상속되지 않음
        • static 메소드는 클래스 단위로 만들어지기 때문에 객체 단위로 형성되는 Override는 성립될 수 없음
        • static 메소드는 클래스가 컴파일 되는 시점에 결정
        • Override 메소드는 런타임 시점에 사용될 메소드가 결정
    • ex)
    public abstract class Parent{
      public void test() {
        System.out.println("Parent Class");
      }
    }
    
    public class Child extends Parent {
      @Override
      public void test(){
        System.out.println("Child Class");
      }
    }
    
    public class Main{
      public static void main(String[] args) {
        Parent parent = new Parent();
        Child child = new Child();
    
        parent.test(); //result : Parent Class
        child.test(); //result : Child Class
      }
    }
    728x90

    'JAVA' 카테고리의 다른 글

    [JAVA] 스트림(Stream)  (0) 2020.05.21
    [JAVA] 람다식(Lambda Expression)  (0) 2020.05.21
    [JAVA] 제네릭(Generic)  (0) 2020.04.06
    [Java] HashMap 값 추출  (0) 2020.02.23
    [JAVA] BufferedReader, BufferedWriter 사용법  (0) 2019.07.28
Designed by Tistory.