Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Java] 미완성과 추상성 (클래스) 본문
미완성 클래스인 제네릭
❓ 제네릭이 필요한 이유
: 제네릭을 사용하지 않으면 타입별로 거의 유사한 코드를 작성해야 한다.
❓ Object 타입을 사용하면 되지 않을까
-> 🌚 데이터를 넣을 때 (ex. int => Integer => Object로 변질)
-> 🌝 데이터를 뺄 때 (명시적으로 형변환 해줘야 한다.)
추상성에 따른 클래스 구분
- 추상성 0% ~ 100%: 추상클래스
- 추상성 100%: 인터페이스
인터페이스는 그냥 '추상성 100%'인 '클래스'이다
단, 인터페이스 내에 선언된 메서드를 '반드시 구현'해야한다.
class Main {
public static void main(String[] args) {
사람 a사람 = new 홍길동(); // 홍길동 extends 사람
변호사 a변호사 = (변호사)a사람; // 사람 리모콘은 홍길동 객체와 연결되어 있다.
// 변호사 리모콘에 들어가려면 '홍길동이면 변호사이어야한다'.
// Java에서는 다중상속이 불가함으로 implements를 이용한다
}
}
class 사람 {}
interface 변호사 {}
class 홍길동 extends 사람 implements 변호사 {} // extends와 implements는 홍길동에게 다형성을 부여하는 수단일 뿐이다.
'Backend > 자바' 카테고리의 다른 글
[Java] 상속관계에서의 우선순위 (0) | 2022.12.11 |
---|---|
[Java] 자바와 서블릿(Servlet), PHP, JSP (0) | 2022.12.09 |
[Java] 옵저버(Observer) 패턴 (0) | 2022.12.03 |
[Java] 컴파일 언어 Java와 JVM (0) | 2022.12.01 |
[Java] 디자인패턴 中 생성패턴, 팩토리 메서드(Factory method) 패턴 (0) | 2022.11.28 |
Comments