Java

[Java] 다형성, 캐스팅, 추상 클래스, 추상 메서드

반응형

다형성이란?

  • 동일한 타입을 사용하지만 다양한 결과가 나오는 성질
  • 실행 도중에 어떤 객체를 필드로 사용하느냐에 따라 결과가 달라짐
  • 자동 형변환을 이용해 필드값을 변경하면 메서드를 수정 안 해도 다양한 결과를 얻을 수 있음
  • ex) 컴퓨터는 저장소, 그래픽 카드 등의 객체를 보유하고 있다. 하지만, 사용하면서 부품을 교체해가면서 사용한다. 새로운 부품은 기존과 동일하지만 실행 결과는 더 좋게 나온다.

 

 

캐스팅(Casting) : 강제 타입 변환

  • 부모 타입을 자식 타입으로 변환하는 것
  • 자식 타입이 부모 타입으로 자동 형변환한 후, 본래 타입으로 변환할 때 본인의 필드나 메서드 사용이 가능해짐

 

 

추상 클래스

  • 클래스들의 공통 특성을 추출해 선언한 클래스
  • 실체 클래스와 상속 관계
  • 추상 클래스가 부모, 실체 클래스가 자식
  • 실체 클래스는 추상 클래스의 모든 속성을 물려받고, 추가로 필드나 메서드를 보유할 수 있음
  • 실체 클래스들의 공통된 필드와 메서드의 이름을 통일할 목적으로 사용한다.
  • 실체 클래스를 작성할 때 시간 절약을 위해 사용한다.
  • abstract 키워드를 사용한다.
public abstract class Name {

}

 

 

추상 메서드와 오버라이딩

  • 메서드 선언만 같고, 내용은 클래스마다 달라야 할 때가 있다. 이때, 추상 클래스는 추상 메서드를 선언할 수 있다.
  • 추상 메서드는 선언부만 있고 내용은 없다.
  • 하위 클래스가 반드시 실행 내용을 실행하도록 하고 싶다면 추상 메서드로 선언하면 된다!
public abstract class Name {
	public abstract void method();
}

 

  • 아래와 같이 추상 메서드를 재정의해 사용한다.
public class BJ extends Name {
	@Override
	public void method() {
		Sysout("~~~");
	}
}

 

 

출처

 

반응형