본문 바로가기
Java

(Java) 다형성 : 업캐스팅, 다운캐스팅, 추상클래스, 인터페이스, 오버라이딩, 오버로딩

by taehee.kim.dev 2020. 9. 18.

다형성 : 겉 껍떼기는 같은데 다양한 형태를 가질 수 있는 성질.

 

업캐스팅 : 부모클래스, 인터페이스형 참조변수가 자식클래스, 인터페이스가 구현된 클래스의 인스턴스를 참조할 수 있다. 이 때, 참조범위는 부모 클래스, 인터페이스형 참조변수 ⊆ 자식클래스, 인터페이스가 구현된 클래스 이기 때문에 명시적으로 형변환을 하지 않아도 자동 형 변환이 된다. 한 형의 참조변수가 다양한 형의 객체를 참조할 수 있으므로, 이는 다형성에 해당된다. 하지만, 이 참조변수를 사용해 사용할 수 있는 참조당하는 객체의 속성은 참조변수형에 해당하는 속성들이다.

 

다운캐스팅 : 자식 클래스형의 참조변수가 부모클래스의 인스턴스를 참조하는것은 일반적으로 불가능하다. 왜냐하면 참조변수의 참조범위가 참조당하는 객체 형의 범위보다 넓기 때문이다.

 

추상화 : 공통된 속성들만 뽑아내는 것.

추상 클래스 : 추상화된 클래스 = 공통된 속성(필드, 메서드)들만 뽑아낸 클래스.

상속받을 자식 클래스들의 공통부분을 뽑아 만든 클래스.

추상클래스는 자식클래스들이 이를 상속받아 구체화된 클래스로 (확장하여) 쓰라고 강제하기위해 존재한다.

구체화된 자식클래스들을 위한 추상적인 클래스이기 때문에, 추상적인 추상클래스는

실제 사용에 적합하지 않으므로, 인스턴스(객체)를 생성할 수 없다.

통일된 속성(필드, 메서드)들로 규격으로서의 역할.

public abstract class 클래스명{

    // 필드
    // 생성자
    // 일반 메소드
    // 추상 메소드
    
}


추상 클래스는 abstract 키워드가 포함된 클래스는 무조건 추상 클래스이다.

하지만, 추상 클래스는 추상 메소드를 포함할 수도, 포함하지 않을 수도 있다.

추상 메소드 : 메소드 선언만 있고 구현부는 없는 메소드.

 

 

'Java' 카테고리의 다른 글

(Java) 클래스란?  (0) 2020.09.18
주요 부분 요약 정리  (0) 2020.05.26

댓글