일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 자바의 장점
- 기술면접
- CSS display 속성
- css position
- 구글 리캡차
- 속성
- Rename to
- 80 to 443
- 스프링 부트
- position속성
- 네트워크
- Oracle
- html
- Create
- css
- 예외처리
- Java
- 자바
- cs질문
- Failed to read the 'responseText' property from 'XMLHttpRequest'
- 바닐라js
- 신입개발자
- 리캡차
- html요소
- multiarray
- database
- tcp와 udp의 차이점
- 기술 면접
- 시맨틱 태그
- 스프링부트
- Today
- Total
Building value
Java[다형성(Polymorphism)] 본문
다형성(Polymorphism)은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다.
다형성은 여러 가지 형태를 가질 수 있는 능력을 의미합니다.
즉, 동일한 메서드를 다양한 방식으로 사용할 수 있는 능력입니다.
Java에서 다형성은 오버로딩(Overloading)과 오버라이딩(Overriding)을 통해 구현됩니다.
오버로딩(Overloading)
오버로딩은 동일한 메서드 이름을 가지고 매개변수의 타입, 개수, 순서 등을 다르게 하여
여러 개의 메서드를 정의하는 것을 의미합니다.
오버로딩을 통해 동일한 기능을 하는 메서드를 다양한 방식으로 사용할 수 있습니다.
다음은 오버로딩의 예시입니다.
public class Calculator {
public int add(int x, int y) {
return x + y;
}
public double add(double x, double y) {
return x + y;
}
public int add(int x, int y, int z) {
return x + y + z;
}
}
위 코드에서 Calculator 클래스는 add() 메서드를 오버로딩하여 정의합니다.
첫 번째 add() 메서드는 int 타입의 매개변수를 두 개 받아 덧셈 연산을 수행하고,
두 번째 add() 메서드는 double 타입의 매개변수를 두 개 받아 덧셈 연산을 수행합니다.
세 번째 add() 메서드는 int 타입의 매개변수를 세 개 받아 덧셈 연산을 수행합니다.
오버라이딩(Overriding)
오버라이딩은 상속받은 메서드를 자식 클래스에서 재정의하여 사용하는 것을 의미합니다.
즉, 부모 클래스에서 정의한 메서드를 자식 클래스에서 재정의하여 사용할 수 있습니다.
오버라이딩을 통해 자식 클래스는 부모 클래스에서 상속받은 메서드를 필요에 따라 수정하거나 변경할 수 있습니다.
다음은 오버라이딩의 예시입니다.
public class Animal {
public void move() {
System.out.println("The animal is moving.");
}
}
public class Dog extends Animal {
@Override
public void move() {
System.out.println("The dog is running.");
}
}
위 코드에서 Animal 클래스의 move() 메서드를 Dog 클래스에서 오버라이딩하여 사용합니다.
이를 통해 Dog 클래스는 move() 메서드를 부모 클래스에서 상속받았지만,
자신의 필요에 맞게 수정하여 사용할 수 있습니다.
Animal animal = new Animal();
Dog dog = new Dog();
animal.move(); // 출력 결과: The animal is moving.
dog.move(); // 출력 결과: The dog is running.
'Java' 카테고리의 다른 글
Java[추상화(Abstraction)] (0) | 2023.03.23 |
---|---|
Java[캡슐화(Encapsulation)] (0) | 2023.03.23 |
Java[상속(Inheritance)] (0) | 2023.03.23 |
Java[객체.Object] (0) | 2023.03.23 |
Java[클래스.Class] (0) | 2023.03.23 |