상속

Java

[JAVA] 추상 클래스와 인터페이스에 대해 알아보자

면접 준비를 하거나 Spring으로 프로젝트를 개발하면서 추상 클래스나 인터페이스에 대한 개념을 많이 보곤 했다. 하지만 정확히 어떤 것을 의미하는지 제대로 알지 못하고 단순히 암기만 하면서 개념을 이해하려고 노력했다.김영한님 강의를 들으면서 해당 개념을 더 정확히 알고 오래 기억하고자 글을 남기게 됐다. 인터페이스를 제대로 알기 전에 추상 클래스 개념을 먼저 알아야 한다. 🔍 추상 클래스란?동물(Animal)은 자식 클래스로 강아지, 고양이, 사자 등을 가질 수 있다.이때 동물은 추상적인 개념이므로 실제로 직접 인스턴스를 생성해 사용할 일이 없다. 따라서 추상적인 개념을 가진 부모 클래스를 직접 사용하여 활용하는 것을 방지하기 위한 목적으로 추상 클래스를 사용한다.정확하게는 다음 두 가지 문제를 방지..

Java

[JAVA] 자바는 다중 상속을 지원하지 않는다!

🔍 자바는 다중 상속을 지원하지 않는다자바는 다중 상속을 지원하지 않는다. 따라서 extend 대상은 하나만 선택할 수 있다.위 그림과 같이 만약 비행기와 자동차를 상속 받아 하늘을 나는 자동차(AirplaneCar)를 만든다고 했을 때, 다중 상속을 사용하게 되면 AirplaneCar 입장에서 move()를 호출할 때 어떤 부모의 move()를 사용해야 할지 애매한 문제가 발생하게 된다. 이 문제를 다이아몬드 문제라고 한다.  또, 다중 상속을 사용하면 클래스 계층 구조가 매우 복잡해질 수 있기 때문에 자바는 클래스의 다중 상속을 허용하지 않는다. 대신 인터페이스의 다중 구현을 허용하여 이런 문제를 피할 수 있다.

당찬 뱁새
'상속' 태그의 글 목록