-
[Java]짧게 훑어보는 Java 간단 지식(오버라이딩&오버로딩, 추상클래스, 인터페이스, SOLID-객체지향의 설계원칙)리뷰노트/Java 2023. 11. 29. 13:01
오버라이딩(Overriding) & 오버로딩(Overloading)
- 오버라이딩(Overriding)은 상위 클래스에 있는 메소드를 하위 클래스에서 재정의 하는 것입니다.
- 오버로딩(Overloading)은 매개변수의 타입이나 개수를 다르게 하여 같은 이름의 메소드를 여러 개 정의하는 것입니다.
추상클래스(Abstract Class) & 인터페이스(Interface)
- 추상클래스(Abstract Class)
- 클래스 내에 추상 메소드가 하나 이상 포함되거나 abstract로 정의된 경우를 말합니다.
- 상속받는 클래스들의 공통적인 로직을 추상화 시키고 기능 확장을 위해 사용합니다.
- 다중상속이 불가능하지만 인터페이스는 다중상속이 가능합니다.
- 인터페이스(Interface)
- 모든 메소드가 추상 메소드로만 이루어져 있는 것을 말합니다.
- 클래스가 인터페이스를 구현하면 인터페이스에 선언된 모든 메소드를 구현해야 합니다.
- 인터페이스를 통해 클래스 간의 결합도를 낮출 수 있으며, 유연하고 확장 가능한 코드를 작성할 수 있습니다.
- 공통점
- new 연산자로 인스턴스 생성 불가능합니다.
- 사용하기 위해서는 하위 클래스에서 확장/구현 해야 합니다.
객체지향의 설계원칙(SOLID)
- SRP - 단일 책임 원칙 : 한 클래스는 하나의 책임만 가져야 하는 원칙입니다.
- OCP - 개방-폐쇄 원칙 : 확장에는 열려있고, 수정에는 닫혀있어야 하는 원칙합니다.
- LSP - 리스코프 치환 원칙 : 하위 타입은 항상 상위 타입을 대체 할 수 있어야 합니다.
- ISP - 인터페이스 분리 원칙 : 인터페이스 내에 메소드는 최소한 일수록 좋다. (하나의 일반적인 인터페이스보다 여러 개의 구체적인 인터페이스가 낫습니다.) SRP와 같은 문제에 대한 두 가지 다른 해결책입니다.
- DIP - 의존관계 역전 원칙 : 구체적인 클래스보다 상위 클래스, 인터페이스, 추상클래스와 같이 변하지 않을 가능성이 높은 클래스와 관계를 맺는 것입니다. DIP 원칙을 따르는 가장 인기 있는 방법은 의존성 주입(DI)입니다.
'리뷰노트 > Java' 카테고리의 다른 글
[Java]짧게 훑어보는 Java 간단 지식(Java란, 컴파일 과정, JVM, GC, 메모리 영역) (0) 2023.11.21 [JAVA] interface(인터페이스) 와 abstract class(추상클래스) (0) 2023.01.31 [Java] String Array -> int Array 로 변환하는 방법 (0) 2022.08.10