JAVA_기초 공부

[JAVA] Override / Overloading

메타듀 2023. 2. 15. 14:10
728x90
반응형

Overridding

상속의 개념
부모클래스에 있는 메소드나 변수를 extends를 통해 부모클래스에 있는 메소드를 쓸 수 있는 기능

목적 : 유연한 코드를 만들기 위하여../ 확장성을 위하여../ 재사용을 하기 위해..

부모 클래스가 정의한 리턴 타입, 메소드 명, 매개변수 패턴 모두 동일한 함수를 덮어씌워 다시 정의하여 사용.
그러나 오버라이드를 한다고 부모 클래스의 기능이 사라지는 것은 아님.
부모 클래스의 메소드를 사용할 수 있어도 자식 클래스에서 변경해야 할 상황이 발생한다면 오버라이드를 통해 자식 클래스에서만 새로운 기능으로 재정의할 수 있다.

static 메소드는 클래스에 속하므로 오버라이드/상속이 되지 않음.
final 이 지정된 메소드는 오버라이드 할 수 없음.
interface를 구현하여 오버라이드 할 때는 반드시 public 접근 제어자를 사용.

장점:
메소드 하나로 여러 객체를 다루고 객체마다 다른 기능을 사용할 수 있음.
유지보수가 편리
코드의 양을 줄임
가독성 증가

 

Overloading

다형성을 지원하는 방법
상속X
메소드 함수명은 같은데 전달받는 파라미터 인자 값에 의해 호출되는 메소드가 다르게 하는 것
매개변수는 같고 반환 타입이 다른 경우는 오버로딩이 성립되지 않는다.

메소드 뿐 아니라 생성자 오버로딩도 존재

장점:
가독성 증가
하나의 이름만 기억하면 되므로 오류의 가능성을 줄어듬
메소드의 이름이 같으면 같은 기능이라고 예측가능
메서드 이름 절약

ex) print()
메소드 이름은 print 하나만 사용하지만
매개변수로 전달되는 인자 타입이 다를 때(int형, String형)
오버로딩을 통한 메소드 호출을 통해 같은 기능을 사용한다.

 

다형성

대표적으로 오버라이딩과 오버로딩이 다형성을 나타내는 기능으로, 하나의 클래스나 함수가 다양한 방식으로 동작하는 것

오버로딩에서는 하나의 메소드로 여러 동작을 할 수 있고, 오버라이드에서는 여러 클래스의 다른 기능을 하나의 메소드로 제어할 수 있음.

객체지향개념의 중요한 특징 중 하나로 프로그래밍에서 효율성을 높여준다.

반응형

'JAVA_기초 공부' 카테고리의 다른 글

[JAVA] Enum 으로 Singleton만들기  (0) 2023.02.17
[JAVA] try-catch-finally / try with resources  (0) 2023.02.17
[JAVA] Getter/Setter  (0) 2023.02.15
[JAVA] 자바의 변수/함수  (0) 2023.02.15
[JAVA] 얕은 복사와 깊은 복사  (0) 2023.02.15