*오버라이딩, 오버로딩을 다형성이라고 함. 
오버로딩 정의

오버로딩 : 하나의 클래스내에서 같은 이름의 메소드나 생성자를 여러개 가지면서 매개변수의 유형과 갯수를 다르게 한다.

오버로딩 설명.

리턴 타입과 매개변수의 이름은 오버로딩에 영향을 주지 않는다. 

예시) 매개변수 타입이 같은데 리턴 타입만 다른 경우는 성립되지 않음.
long garden( int a, int b) , int garden( int a, int b) => 어디로 들어가야할지 모르기에 성립이 안된다.

 

오버라이딩 정의

오버라이딩: 상위 클래스(부모)가 가지고 있는 메소드를 하위 클래스(자식)가 재정의 하여 사용하는 것을 의미합니다. 

오버라이딩 설명. 

부모 A, 자식 B라고 할때

B는 " 오버라이딩 해서 나는 아버지 처럼 살기 싫어 " 해서 자기꺼대로 바꿔 쓴다. 
근데 A ab = New B(); 이렇게 되면, 부모객체로 만들긴 하지만 껍데기는 B이기 때문에 오버라이딩은 하지만, 
부모가 가진 메소드만 쓸수 있다. 그 외에 꺼는 못씀. 
but) 인생엔 언제나 예외가 있잖아.  static이 그 예외야. 
A에 static void f가 있고 B에도 f가 있다면, 부모꺼를 써야한다. 
A에 그냥 void f가 있고 B에도 f가 있었다면, 자식f를 써야한다. 

 

다형성이란? 
오버로딩과 오버라이딩 처럼 하나의 지시에 여러 객체가 각자 다른 행위를 수행할 수 있도록 만든 것을 다형성으로 알고 있습니다. 

 

오버라이딩 예시

오버로딩 예시

예외처리에서의 오버라이딩 

예외처리 ( try, catch, finally )

=> try : 최소한 하나의 catch 블록이 있어야 실행 

=> catch: 갯수 무제한. 

=> finally 마지막에 실행 ( 있으면 무조건 실행, 필수 블록은 아님)

 

+ Recent posts