[java]
제네릭
미완성 클래스
제네릭이 필요한 이유
⇒ 제네릭을 사용하지 않으면 타입별로 거의 유사한 코드를
작성해야 한다
Object타입으로 만들면 되지 않을까?
데이터를 넣을때
•
int ⇒ integer ⇒ Object(로 변질)
데이터를 뺄 때
•
명시적으로 형변환 해줘야한다
제네릭은 구매자사인(타입)이 안적힌 그림작품(똑같은 구조)이다
(※ 그림을 복사해서 팔 수 있다고 가정할 때)
⇒ 사용하면서 완성시킨다
구조가 다르면 제네릭을 쓸 수 없다
타입을 두개 이상 지정해야 하면, 하나의 타입 조합만 가능하다
구상클래스, 추상클래스, 인터페이스
[추상성]
•
0% : 구상클래스
•
0% ~ 100% : 추상클래스
•
100% : 인터페이스
인터페이스는 그냥 추상성 100%인 클래스이다
class Main {
public static void main(String[] args) {
사람 a사람 = new 홍길동(); // 홍길동 extends 사람
변호사 a변호사 = (변호사)a사람; // 사람 리모콘은 홍길동 객체와 연결되어있다
// 변호사 리모콘에 들어가려면 홍길동이면 변호사이어야 한다
// 다중상속이 불가함으로 implements를 이용한다
}
}
class 사람 {}
interface 변호사 {}
class 홍길동 extends 사람 implements 변호사 { // 사람과 변호사의 관계를 따지는 게 아니다
// extends와 implements는 홍길동에
// 다형성을 부여하는 수단일 뿐이다
}
Java
복사