다형성(Polymorphism)
다형성의 의미
자바의 OOP개념 (다형성, 캡슐화, 추상화, 상속) 중 하나
슈퍼클래스의 동일한 메소드라도 구현체에 따라 내부동작을 변하게 하는 것
다형성을 가장 잘 보여주는 개념으로는 오버로딩과 오버라이딩이 있다.
Overloading
오버로딩은 하나의 클래스에서 같은 이름의 메소드를 가질 수 있게 한다. (인자는 달라야 함)
class test{
public void a(int num){
System.out.println("정수입니다.");
}
public void a(double num){
System.out.println("실수입니다.");
}
public void a(String param){
System.out.println("문자입니다.");
}
}
public class Polymorphis {
public static void main(String[] args) {
test a = new test();
test.a(1);;
test.a(1.0);;
test.a("Hello");
}
}
Overriding
오버라이딩은 부모 클래스를 상속받은 자식 클래스에서 부모 클래스를 새롭게 정의할 수 있다.
class Parents{
public void info(){
System.out.println("부모 클래스 입니다.");
}
}
class Child extends Parents{
public void info() {
super.info();
System.out.println("자식 클래스 입니다.");
}
}
public class OverTest {
public static void main(String[] args) {
Child son = new Child();
son.info(); // 자식 클래스 입니다.
}
}
다형성을 사용하는 이유
코드의 재사용성이 높아진다. → 유지보수가 쉬워진다.
ex) 슈퍼클래스 하나 정의해놓고 계속 가져다 사용할 수 있다.
참고 문헌
'Backend > JAVA' 카테고리의 다른 글
JUnit5의 기본적인 사용법들 (3) | 2021.03.11 |
---|---|
DIP(Dependency Inversion Principle) (3) | 2020.06.23 |
Java Arrays.asList() (0) | 2020.02.27 |
Java DateTimeFormatter을 사용하여 요일, 오전/오후 구하기 (+ 다른 나라 언어로 포맷팅 변경하는 방법) (0) | 2020.01.02 |
추상화(Abstract) (0) | 2019.02.27 |