Java

다형성 (Polymorphism) 업캐스팅, 다운캐스팅, 인터페이스

정훈5 2024. 4. 25. 17:33

다형성(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