티스토리 뷰

JAVA

JAVA (추상 클래스, Interface, Generics)

HanGyuJung 2021. 7. 26. 13:47

추상클래스 : 자손 클래스에서 반드시 재정의해서 사용되기 떄문에 조상의 구현이 무의미한 메소드

구현부는 ; 으로 대체하고 그 의미로 abstract 키워드를 메소드 선언부에 추가, 객체를 생성할 수 없는 클래스라는 의미로 클래스 선언부에 abstract를 추가한다.

 

인터페이스 : 최고수준의 추상화 단계 ( 모든 메소드가 abstract 형태) 

모든 멤버 변수는 public static final 이며 생략가능, 모든 메소드는 public abstract 이며 생략가능

인터페이스는 다중상속가능 ( 어차피 구현부가 없으므로 내가 구현하면 되서 헷갈릴 일이없음 )

인터페이스도 당연히 다형성이 적용될 수 있음.  객체생성은 안되지만(구현부가없기떄문) 참조는 가능함

 

추상클래스  VS 인터페이스

추상클래스는 관련성이 높은 클래스간에 상속을 통해 코드를 공유하고 싶을떄 사용하고,  인터페이스는 서로 관련성이 없이 해당 인터페이스의 기능만을 가져와 구현하고 싶을때 사용한다.

 

Generics : 다양한 타입의 객체를 다루는 메소드나 컬렉션 클래스에서 컴파일시에 타입 체크하는 기법