일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 아두이노
- 운영체제
- 자료구조
- 네트워크
- 파이썬
- Java
- Database
- 자바ORM표준JPA프로그래밍
- 영속성컨텍스트
- Hibernate
- MySQL
- 논문리뷰
- 디자인패턴
- persistance context
- 이펙티브자바
- Jetson
- 자바
- cartograhper
- JPA
- 알고리즘
- 장애물인식
- Spring Batch
- 배달로봇
- DeepLearning
- 포인트클라우드
- 논문
- 프로그래머스
- Python
- 딥러닝
- 자율주행
- Today
- Total
목록인터페이스 (2)
제리 devlog
자바의 다중 구현 매커니즘 : 인터페이스, 추상 클래스 자바 8부터는 인터페이스도 default 메서드를 제공할 수 있다. 인터페이스 vs 추상 클래스 공통점 선언 내용은 존재하지만 구현 내용은 없다(추상 메서드를 갖는다) 인스턴스로 생성할 수 없다. 목적 인터페이스 : 함수의 껍데기만 존재해서 구현을 강제한다. 구현 객체가 같은 동작을 하도록 보장한다. Has - A 추상 클래스: 추상 클래스를 상속 받아 기능을 이용하고 추가시킨다. Is - A 다중 상속 인터페이스 : 여러개의 인터페이스를 구현할 수 있다. 추상 클래스 : 여러 클래스를 상속 받을 수 없다. 책 본문 내용중 타입이라는 표현은 구현해야하는 메서드를 아울러 표현하는 것으로 이해했다. 추상 클래스가 정의한 타입을 구현하는 클래스는 반드시 ..
객체는 클래스가 아닌 인터페이스로 참조하라. 이 말이 무슨 뜻일까? //좋은 예 Set set = new LinkedHashSet(); //나쁜 예 LinkedHashSet set = new LinkedHashSet(); 객체를 생성할 때 LinkedHashSet으로 객체를 만들지만 업캐스팅을 사용하고있다. 업캐스팅을 사용하게되면 상위 인터페이스에 있는 구현체를 사용할 수 있지만 LinkedHashSet만이 가진 메서드를 사용할 순 없다. 인터페이스가 갖는 유연성 더 나은 성능이나 신기능을 사용하기위해 원래 구현했던 타입을 변경하는 경우가 있다. //좋은 예 LinkedHashSet -> HashSet으로 구현체를 변경해도 코드가 변하지 않음 Set set = new HashSet(); set.add(...