Java 인터뷰 - 요약
2829 단어 javaprogrammingcareerinterview
Java의 추상 클래스에 대해 설명하시겠습니까?
때때로 우리는 클래스의 모든 메소드에 대한 구현을 제공할 수 없는 상황에 직면할 수 있습니다. 구현을 확장하는 클래스에 맡기고 싶습니다. 이 경우 클래스를 추상으로 선언합니다. 클래스를 추상화하기 위해 추상 키워드를 사용합니다. 하나 이상의 추상 메서드를 포함하는 모든 클래스는 추상으로 선언됩니다. 클래스를 추상 메서드를 포함하는 추상 클래스로 선언하지 않으면 컴파일 시간 오류가 발생합니다.
예를 들어; 차량 클래스를 선택하면 이륜차, 4륜차 등이 있을 수 있기 때문에 구현을 제공할 수 없습니다. 그 순간 차량 클래스를 추상화합니다. 차량의 모든 공통 기능은 차량 클래스에서 추상 메서드로 선언됩니다. 차량을 확장하는 모든 클래스는 메서드 구현을 제공합니다. 구현을 제공하는 것은 하위 클래스의 책임입니다. 추상 클래스의 중요한 기능은 다음과 같습니다.
1) 추상 클래스는 인스턴스화할 수 없습니다.
2) 추상 클래스에는 추상 메서드, 구체적인 메서드 또는 둘 다 포함됩니다.
3) 추상 클래스를 확장하는 모든 클래스는 추상 클래스의 모든 메서드를 재정의해야 합니다.
4) 추상 클래스는 0개 이상의 추상 메서드를 포함할 수 있습니다.
From this point, it is better to compare Abstract classes with Interfaces since the most common questions are related to comparison between them.
추상 클래스 대 인터페이스 🤼♂️
Interface support multiple inheritance
Abstract class does not support multiple inheritance
이는 다음과 같이 하나 이상의(따라서 다중 상속) 인터페이스로 인터페이스를 확장할 수 있음을 의미합니다.
interface Interface_A { }
interface Interface_B { }
interface Interface_C { }
interface MyInterface extends Interface_A, Interface_B, interface_C { }
추상 클래스를 확장해 봅시다.
class Class_A { }
abstract class MyAbstractClass extends Class_A { }
❗❗❗ 이 동작은 Java 8에서 변경되었습니다. 인터페이스의 "기본"메서드를 살펴보세요.
Reference
이 문제에 관하여(Java 인터뷰 - 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yigi/java-interview-abstract-1e32텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)