비디오: 자바 객체지향 강의 24강 - 추상 메소드(Abstract Method) 2024
자바 인터페이스 클래스와 추상 클래스는 모두 추상 메소드를 가지고 있습니다. 그러나 추상적 인 방법은이 두 종류의 참조 유형에서 약간 다른 역할을합니다. 어떻게 당신이 그것을 마음 속에 똑바로 유지할 수 있습니까?
먼저해야 할 일은 코드 작성에 많은 연습없이 객체 지향 프로그래밍 개념을 배우는 사람은 아무도 없다는 것입니다. 당신이 혼란 스럽다면, 그것은 좋은 것일 수 있습니다. 이것은 당신이이 물건이 얼마나 복잡한 지 충분히 이해했다는 것을 의미합니다. 작성하는 코드가 많을수록 클래스, 인터페이스 및 기타 모든 아이디어가 더 편하게됩니다.
할 일은 추상적 인 방법을 선언하는 방법의 차이점을 정리하는 것입니다. 여기 이야기가 있습니다.
일반 (비 추상화) 클래스에서 | 추상 클래스에서의 인터페이스 | ||
추상 메소드는 허용됩니까? | 아니요 | 예 | 예 |
메소드 선언에 추상 키워드가 포함될 수 있습니까? | 아니오 | 예 | 예 |
메소드 선언에 기본 키워드가 포함될 수 있습니까? | 아니요 | 아니요 | 아니요 |
추상 또는 기본 | 추상이 아님 | 초록 | 초록이 아님 |
인터페이스와 추상 클래스 모두 추상 메소드를 가지고 있습니다. 따라서 인터페이스 선언과 추상 클래스 선언 사이에서 어떻게 선택해야하는지 궁금 할 것입니다. 사실 세 가지 전문 프로그래머에게 인터페이스와 추상 클래스가 서로 다른 점을 물어볼 수 있습니다. 그렇게한다면 5 가지 다른 대답을 얻을 수 있습니다. 인터페이스와 추상 클래스는 비슷한 짐승이며 Java 8의 새로운 기능으로 이전 Java 버전과 훨씬 더 비슷하게 만들었습니다 (예, 대답 5 개, 대답 3 개). 그러나 기본 아이디어는 사물 간의 관계에 관한 것입니다.
가
- 관계임을 나타냅니다. 인터페이스 구현은 할 수 있음
- 관계를 나타냅니다. 클래스가 많은 인터페이스를 구현할 수 있지만 클래스가 하나의 클래스 만 추상 클래스 인 경우에도 하나의 다른 클래스 만 확장 할 수 있습니다. 그래서 Public class Dog가 HousePet 를 선언 한 후에는
Dog
를
Friend
클래스로 확장 할 수 없습니다. 그러나
Dog
는
Befriendable
인터페이스를 구현할 수 있습니다. 그런 다음 동일한
Dog
클래스를
Trainable
인터페이스로 구현할 수 있습니다.
그리고 인터페이스와 추상 클래스 간의 차이가
더 많아지기를 원한다면 여기에 하나만 있습니다. 인터페이스에는 정적이 아닌 최종 필드가 포함될 수 없습니다.
그렇습니다. 인터페이스와 추상 클래스는 서로 다릅니다. 그러나 당신이 게임에서 새로운 사람이라면, 당신은 그 차이에 대해 걱정할 필요가 없습니다. 가능한 한 많은 코드를 읽고, 추상적 인 방법을 볼 때 무서워하지 마십시오. 그게 전부입니다.