abstract, interface, Generics

류기탁·2021년 12월 14일
0

Java

목록 보기
3/5

1. 추상클래스

개요

  • 미완성이란 의미.
  • 메소드의 선언부만 작성하고 실제 수행내용은 구현하지 않는 추상 메소드이다.
abstract class 추상 {
	abstract void move();
}

2. 인터페이스

개요

  • 일종의 추상 클래스이다. 추상클래스 보다 추상화 정도가 높아서 몸통을 갖춘 일반메소드, 또는 멤버 변수를 구성원으로 가질 수 없다.
  • 프로그램과 사용자 사이의 접점
  • 최고수준의 추상화 단계는 모든 메소드가 abstract 형태이다.

구현 형태

클래스와 유사하게 interface 선언

interface 인터페이스 {
	public static final ~~
	public abstract 메소드()
}

사용방법은 다음과 같다.

class 클래스이름 implements 인터페이스이름 {

}

멤버 구성

모든 멤버 변수는 public static final이다. 생략가능하다.
모든 메소드는 public abstact 이다. 생략가능하다.

특징

extends를 이용해 상속이 가능하다.
클래스와 달리다중상속이 가능하다.

  • Default Method
    (면접질문으로)

  • StaticMethod
    interface에

3. Generics

개요

  • 다양한 타입의 객체를 다루는 메소드, 컬렉션 클래스에서 컴파일시에 타입체크한다.
  • 미리 사용할 타입을 명시해서 형변환을 하지 않아도 되게한다.
  • 객체의 타입에 대한 안전성 향상 및 형 변환의 번거러움이 감소한다.
  • 이것 저것 다할 수 있는 추상화된 클래스이다.
  • 컴파일러가 해당 코드를 처리할 때 타입을 처리하므로, 융통성이 있다.

예시 Generics을 쓸건데, 그타입을 T로 사용할 것이다.

public class GenericContainer<T> {
	private T obj;
	
	public T getObj() {
		return obj;
	}
	public T setObj(T obj) {
		this.obj = obj;
	}
}
  • main 사용법은 다음과 같다.
        GenericContainer<String> gc1 = new GenericContainer<String>();
		gc1.setObj("지네릭 컨테이너");
		
		GenericContainer<Integer> gc2 = new GenericContainer<Integer>();
		gc2.setObj(123456789);
		gc2.setObj(new Integer(4456));
profile
오늘도 행복한 하루!

0개의 댓글