기본 개념을 먼저 말씀 드리겠습니다
Java 언어에서, 추상 클래스와 인터페이스는 추상 클래스 정의를 지원하는 두 가지 메커니즘입니다. Java에게 강력한 객체 지향 기능이 주어진 것은이 두 가지 메커니즘의 존재로 인해 정확히 있습니다. 추상 클래스와 인터페이스는 추상 클래스 정의를 지원하는 데 큰 유사성을 가지며 서로 대체 할 수도 있습니다. 따라서 많은 개발자들은 추상 클래스를 정의 할 때 추상 클래스와 인터페이스에 대한 임의의 선택을 가지고있는 것 같습니다. 사실, 둘 사이에는 여전히 큰 차이가 있습니다. 그것들의 선택은 문제 영역의 본질에 대한 이해와 설계 의도에 대한 이해가 정확하고 합리적인지를 반영합니다.
초록 클래스와 인터페이스는 모두 Java 언어로 사용하여 추상 클래스를 수행합니다 (이 기사의 추상 클래스는 추상 클래스에서 번역되지 않으며 추상적 인 신체를 나타내며, 초록 클래스는 Java 언어로 사용되는 방법입니다. 구별에주의를 기울이십시오). 그렇다면 추상 수업은 무엇입니까? 추상 클래스를 사용할 수있는 혜택은 무엇입니까?
객체 지향 개념에서, 우리는 모든 객체가 클래스로 묘사되어 있지만 다른 방법은 그렇지 않다는 것을 알고 있습니다. 모든 클래스가 객체를 설명하는 데 사용되는 것은 아닙니다 (콘크리트 클래스). 클래스에 구체적인 대상을 설명하기에 충분한 정보가 포함되어 있지 않은 경우 그러한 클래스는 추상 클래스입니다. 추상 클래스는 종종 문제 영역을 분석하고 설계 할 때 얻는 추상 개념을 나타내는 데 사용되며, 다르지만 본질적으로 동일하게 보이는 일련의 구체적인 개념의 추상화입니다. 예를 들어, 그래픽 편집 소프트웨어를 개발하는 경우 문제 필드에 원 및 삼각형과 같은 특정 개념이 있음을 알 수 있습니다. 그것들은 다르지만 모두 모양의 개념에 속합니다. 문제 분야에는 모양의 개념이 존재하지 않습니다. 그것은 추상적 인 개념입니다. 추상 개념은 초록 개념에 상응하는 구체적인 개념이 없기 때문에 추상 개념을 나타내는 데 사용되는 추상 클래스를 인스턴스화 할 수 없기 때문입니다.
가상 기능과 인터페이스는 종종 Java 개발에 사용됩니다. 이 둘의 차이점은 무엇입니까?
초록 : 하위 클래스로 하나의 부모 클래스 만 상속받을 수 있습니다.
인터페이스 : 서브 클래스는 여러 인터페이스를 구현할 수 있습니다
그렇다면 언제 초록을 사용하고 언제 인터페이스를 사용해야합니까?
서브 클래스와 부모 클래스가 관계에있는 경우, 예를 들어 아시아 인은 사람이면 아시아 서브 클래스는 사람의 부모 클래스를 상속받을 수 있습니다.
서브 클래스와 부모 클래스가 관계와 같을 때, 예를 들어, 미국의 슈퍼맨은 슈퍼맨과 같습니다. 슈퍼맨의 능력은 모든 사람이 아니므로 모든 속성이 아닙니다. 우리는 인간의 부모 클래스에 초강대국을 고려할 수 없습니다. 현재 인터페이스를 사용할 수 있습니다
Code example:
공개 초록 클래스 남자 {public acpract void a eat ();} 공개 인터페이스 초강대국 {public void superpower ();} 공개 클래스 아시아 인은 남자 {@overridepublic void eat () {system.out.println ( "아시아 인}}}} public class Americansuperman이 {void puperpower elover em (public void puperpower)을 확대합니다. {System.out.println ( "American Superman Can Fly");}@reverridepublic void eat () {System.out.println ( "미국식은 나이프 and fork and fork");}} public static void main (string [] args) {Man AnasiAman = New Asiaman (); Americanseperman Anamericansuperman = 신약 AmericanSuperman (); AnasiAman.eat (); anamericansuperman.eat (); anamericansuperman.superpower ();}실행 결과 :
미국인들은 칼로 먹고 포크 아메리칸 슈퍼맨은 젓가락으로 먹는 아시아 인을 날 수 있습니다.
추상 및 인터페이스의 올바른 사용은 코드의 가독성을 향상시키기 위해 유리합니다. 사람들이 확장을 보면 a가 무엇인지 알게 될 것입니다. 그들이 구현을 볼 때, 그들은이 클래스가 어떤 특징을 가지고 있는지 알 수 있습니다.