다형성(Polymorphism) 이란?
다형성은 하나의 데이터 타입이 다양한 형태로 바라볼 수 있는 것을 의미하며 상속, 추상화, 인터페이스와 함께 사용
업캐스팅 (Upcasting) 이란?
부모 클래스의 참조 변수로 자식 클래스의 객체를 참조하는 것 --> 부모가 자식을 참조
부모 클래스의 데이터 타입으로 자식 클래스의 객체를 대입하는 것을 의미
업캐스팅은 자동
Animal animal = new Dog(); // 업캐스팅
다운캐스팅(Downcasting) 이란?
부모 클래스의 참조 변수를 자식 클래스의 객체로 변환 --> 자식이 부모를 참조
다운캐스팅은 명시적으로 형변환 해야된다.
Dog dog = (Dog) animal; // 다운캐스팅
추상클래스 란?
하나 이상의 추상 메서드를 포함하고 있는 클래스
추상 클래스는 직접적으로 객체를 생성할 수 없으며, 다른 클래스에서 상속받아 구현되어야 합니다.
인터페이스 란?
모든 메서드가 추상 메서드로 선언 public abstract
모든 변수는 상수로 선언됨 public static final
interface Animal {
// 추상 메서드만 선언 가능
// public abstract void eat(); // 축약이 가능하다.
void eat();
// public abstract void move(); // 축약이 가능하다.
void move();
}
// implements - 구현하다.
class Dog implements Animal {
// class 앞에 abstract를 붙이거나 , Animal의 메서드를 @oOverride 하거나
@Override
public void eat() {
System.out.println("먹이를 먹다.");
}
@Override
public void move() {
System.out.println("촐랑촐랑 다닌다.");
}
} // end of Dog class
class Bird implements Animal {
@Override
public void eat() {
System.out.println("모이를 먹다.");
}
@Override
public void move() {
System.out.println("날라 다닌다.");
}
} // end of Bird class
인터페이스의 특징
1. 클래스는 여러 인터페이스를 구현할 수 있으므로, 다중 상속의 효과
2. 클래스가 인터페이스를 구현할 때는 implements 키워드를 사용
3. 인터페이스는 추상 메서드(구현부가 없는 메서드)만을 가진다.
3. 자바 8부터는 default 메서드와 staitc 메서드를 가질 수 있다.
https://pridiot.tistory.com/48
[Java] 다형성(Polymorphism)
공부했던 자료 정리하는 용도입니다. 재배포, 수정하지 마세요. 다형성(Polymorphism) 자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로
pridiot.tistory.com
'Java' 카테고리의 다른 글
| 2024.04.26 인터페이스 활용 (0) | 2024.04.26 |
|---|---|
| 2024.04.26 JAVA 유용한 클래스 String, StringBuffer 클래스 (0) | 2024.04.26 |
| 2024.04.25 JAVA 유용한 클래스 - Object 클래스 (0) | 2024.04.25 |
| 2024.04.25 Swing - 1 프로젝트 (0) | 2024.04.25 |
| 2024.04.25 인터페이스에 대한 고찰 (0) | 2024.04.25 |