다형성을 배우기에 앞서 필요한 개념이 '오버로딩''오버라이딩' 이다.

 

1) 부모 클래스의 메소드에 매개변수를 넣어 사용하면 '오버로딩'

2) 부모 클래스의 메소드의 실행 내용을 바꾸면 '오버라이딩'

 

 

1. 오버로딩 (Overloading) 이란?

  • 의미 : 같은 이름의 메소드를 매개변수의 타입이나 개수에 따라 중복 정의하는 것
  • 목적 : 매개변수에 따라 특정 메소드가 호출되도록 하는 것

 

부모 클래스(Phone) 정의

 

자식 클래스(MyPhone) 정의

 

실행

 

결과 화면

 

 

여기서 신경 쓸 부분은 메인 클래스에서 자식 클래스의 객체 생성 후 오버로딩한 메소드의 매개변수에 값을 넣게 되면,

자식 클래스의 메소드에 만들어둔 매개변수로 값이 들어간다. (부모 클래스의 멤버 변수와는 상관이 없다)

 

 

2. 오버라이딩 (Overriding) 이란?

  • 의미 : 부모 클래스에 있는 메소드를 자식 클래스에서 재정의하여 사용하는 것
  • 목적 : 메소드의 이름 및 매개변수의 타입과 개수 등은 모두 동일하지만 내용을 바꿔서 사용하는 것

 

부모 클래스(Phone) 정의

 

자식 클래스(MyPhone) 정의

 

실행

 

결과 화면

 

 

**추가 내용**

부모 클래스에서 만든 메소드와 이름이 같은 메소드를 자식 클래스에서 쓰게 되면

자식 클래스에서 재정의한 메소드가 호출된다. 

이 때, 부모 클래스에서 만든 메소드를 호출 하기 위한 방법은 2가지가 있으며

1) 부모 클래스의 객체를 생성하여 메소드 호출

2) 자식 클래스에서 만든 메소드에 supur 사용

으로 사용할 수 있게 된다.

 

 

 

+ Recent posts