728x90
반응형
상속(Inheritance)
상속은 한 클래스가 다른 클래스의 속성과 메소드를 이어받는 메커니즘입니다. 상속을 통해 기존 코드를 재사용하고 확장할 수 있으며, 이는 코드의 중복을 줄이고 유지보수를 용이하게 합니다.
기본 구조
class Vehicle {
public void display() {
System.out.println("I am a vehicle.");
}
}
class Car extends Vehicle {
@Override
public void display() {
super.display();
System.out.println("I am a car.");
}
}
- Car 클래스는 Vehicle 클래스로부터 상속을 받습니다(extends 키워드 사용).
- @Override 애노테이션은 Vehicle 클래스의 display 메소드를 Car 클래스에서 재정의(오버라이딩)합니다.
- super 키워드를 사용하여 부모 클래스의 메소드를 호출할 수 있습니다.
다형성(Polymorphism)
다형성은 "많은 형태를 가진다"는 의미로, 같은 이름의 메소드가 여러 클래스에서 다른 방식으로 작동하게 하는 기능입니다. 다형성은 메소드 오버로딩과 오버라이딩을 통해 구현됩니다.
메소드 오버로딩(Method Overloading)
메소드 오버로딩은 같은 이름의 메소드를 매개변수의 타입이나 개수를 다르게 하여 여러 번 정의하는 것입니다.
class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
- Calculator 클래스는 add 메소드를 두 번 정의합니다. 하나는 정수 덧셈, 다른 하나는 실수 덧셈입니다.
메소드 오버라이딩(Method Overriding)
메소드 오버라이딩은 상속 관계에서 자식 클래스가 부모 클래스의 메소드를 재정의하는 것입니다.
class Animal {
public void sound() {
System.out.println("This animal makes a sound.");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("The dog says: Bow Wow");
}
}
- Dog 클래스는 Animal 클래스의 sound 메소드를 오버라이딩하여 개의 소리를 출력합니다.
결론
상속과 다형성은 Java 프로그래밍에서 코드의 재사용성과 유연성을 극대화합니다. 상속을 통해 기본적인 기능을 가진 클래스를 만들고, 이를 확장하거나 수정하여 새로운 클래스를 쉽게 생성할 수 있습니다. 다형성을 통해 같은 인터페이스를 다양한 방식으로 구현할 수 있으며, 이는 프로그램의 유지보수와 확장성에 크게 기여합니다. 객체 지향 프로그래밍의 이러한 개념을 이해하고 적절히 활용하는 것은 효과적인 Java 프로그래밍의 핵심입니다.
728x90
반응형
'Java' 카테고리의 다른 글
Java 예외 처리: 안정적인 애플리케이션 구축을 위한 필수 요소 (32) | 2024.02.19 |
---|---|
Java 추상 클래스와 인터페이스: 객체 지향 프로그래밍의 핵심 요소 (30) | 2024.02.18 |
Java 클래스와 객체: 객체 지향 프로그래밍의 기초 (35) | 2024.02.18 |
Java 객체 지향 프로그래밍 (OOP): 핵심 개념과 원리 (29) | 2024.02.17 |
Java 배열과 컬렉션: 데이터 관리의 핵심 (25) | 2024.02.17 |