둘 다 객체지향 언어인데 무슨 차이가 있는가?
1. C++은 다중 상속을 지원하나, JAVA는 지원하지 않는다.
2. C++는 friend 키워드를 지원하나, JAVA는 지원하지 않는다. friend 키워드는 은닉성 이슈로 사용을 자제한다.
3. JAVA는 다중상속을 지원하지 않는 대신 Interface를 지원한다. C++는 지원하지 않는다.
4. JAVA는 객체를 메모리의 Heap영역에만 할당할 수 있으나, C++의 경우 Heap과 Stack영역 모두에 할당이 가능하다
5. JAVA는 메모리(Heap 영역) 해제가 자동으로 이루어지지만, C++은 프로그래머가 수동으로 해야한다.
6. C++에서는 연산자오버로딩을 지원하지만, JAVA는 그렇지 않다.
7. JAVA는 익명클래스(Anonymous Class)를 지원하지만, C++의 경우 그렇지 않다.
8. JAVA는 동적바인딩(Dynamic Binding)을 택하고 있지만, C++은 정적바인딩(Static Binding)을 택하고 있다.
인터페이스와 추상클래스 차이
추상 클래스는 그 추상 클래스를 상속받아서 기능을 이용하고, 확장시키는 데 있습니다. 반면에 인터페이스는 함수의 껍데기만 있는데, 그 이유는 그 함수의 구현을 강제하기 위해서
익명클래스란? Java의 Interface나 Abstract 클래스는 익명 함수로 구현과 동시에 객체를 생성
'프로그래밍언어' 카테고리의 다른 글
JIT 컴파일러 (0) | 2022.12.26 |
---|---|
비동기, 동기 통신과 call back (0) | 2022.10.03 |
call by reference, call by value (0) | 2022.10.03 |
자료구조편 - hash, map, set (0) | 2022.09.20 |
OOP란? (0) | 2022.09.19 |