이 기사에서는 Java의 인터페이스 및 추상 클래스 사용에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
객체 지향 개념에서, 우리는 모든 객체가 클래스로 묘사되지만 모든 클래스가 객체를 설명하는 데 사용되는 것은 아닙니다. 클래스에 구체적인 대상을 설명하기에 충분한 정보가 포함되어 있지 않은 경우 그러한 클래스는 추상 클래스입니다.
초록 클래스는 종종 문제 필드를 분석하고 설계 할 때 얻는 추상 개념을 나타내는 데 사용됩니다. 그것들은 다르게 보이지만 본질적으로 동일하게 일련의 구체적인 개념의 추상화입니다. 우리는 그것들을 인스턴스화 할 수 없으므로 (구체적인 일을 할 수 없음) 추상화라고합니다.
예를 들어 : "과일"을 설명하고 싶을 때는 추상화입니다. 질량과 부피 (과일에는 질량이 있음)와 같은 몇 가지 일반적인 특성이 있지만 특성이 부족합니다 (사과와 오렌지는 과일이며 고유 한 특성이 있습니다). 우리는 과일을 나타낼 수있는 유일한 것을 생각 해낼 수 없습니다 (사과와 오렌지는 과일을 대표 할 수 없기 때문입니다). 추상 클래스는이를 설명하는 데 사용될 수 있으므로 추상 클래스를 인스턴스화 할 수 없습니다. 우리가 특정 클래스를 사용하여 "사과"를 설명 할 때,이 클래스는 "과일"을 설명하는 추상 클래스를 상속받을 수 있습니다. 우리는 모두 "사과"가 일종의 "과일"이라는 것을 알고 있습니다.
객체 지향 필드에서 추상 클래스는 주로 유형 숨기기에 사용됩니다. 우리는 일련의 행동에 대한 고정 된 추상 설명을 구성 할 수 있지만,이 행동 세트에는 가능한 구체적인 구현 방법을 가질 수 있습니다. 이 추상 설명은 추상 클래스이며, 가능한 구체적인 구현 세트는이 추상 클래스의 모든 파생 클래스로 나타납니다.
인터페이스 및 추상 클래스의 모든 추상 방법은 구체적인 구현에서 구현할 수 없지만 서브 클래스에서 모든 추상 방법을 구현해야합니다 ({}에서 비어 있더라도 기능 본문이 있어야 함). Java 디자이너는 추상 방법의 유연성을 고려할 수 있으며 각 서브 클래스는 자신의 요구에 따라 추상 방법을 구현할 수 있습니다.
추상 클래스의 정의는 다음과 같습니다.
공개 초록 클래스 AbstractClass // 적어도 하나의 추상 방법이 있습니다 {public int t; // 일반 데이터 멤버 공개 초록 void method1 (); // 초록 방법, 추상 클래스의 서브 클래스는 클래스에서 추상 클래스에서 추상적 인 메소드를 구현해야합니다. 공개 무효 방법 3 (); // abstract 메소드 public int method4 (); public int method4 () {... // 초록 클래스는 비 임계 메소드 메소드의 기본 동작을 할당 할 수 있습니다.인터페이스의 정의는 다음과 같습니다.
공개 인터페이스 인터페이스 인터페이스 {정적 최종 int i; // 인터페이스에 일반 데이터 멤버가있을 수 없으며 수정할 수없는 정적 데이터 구성원 만 있습니다. 정적은 글로벌, 최종 수단을 수정할 수 없습니다. 정적 최종 수정없이 수정 될 수 있으며, 정적 및 최종 공개 void method1 ()로 암시 적으로 선언됩니다. // 인터페이스의 메소드는 추상적 인 메소드 여야하므로 공개 void method2 ()는 초록 수정이 필요하지 않습니다. // 메소드의 기본 동작은 인터페이스에 할당 할 수 없습니다. 즉, 메소드의 특정 구현이있을 수 없습니다}요컨대, 초록 클래스는 불완전한 클래스이며 인터페이스는 수정 방법 선언과 수정할 수없는 정적 데이터의 모음 일뿐입니다.
어떤 의미에서, 인터페이스는 특별한 형태의 추상 클래스입니다. Java 언어에서 추상 클래스는 상속 관계를 나타냅니다. 클래스는 하나의 초록 클래스 만 상속받을 수 있지만 클래스는 여러 인터페이스를 구현할 수 있습니다. 많은 경우에, 속성에 대한 상속을 의도적으로 표현할 필요가 없다면 인터페이스는 실제로 추상 클래스를 대체 할 수 있습니다.
또한 추상 수업과 인터페이스를 소개하는 Java의 목적을 위해 전문가로부터 얻은 답변은 다음과 같습니다.
1. 클래스 계층 구조의 관점에서, 추상 클래스는 레벨의 맨 위에 있지만 실제 디자인에서는 추상 클래스가 일반적으로 나중에 나타납니다. 왜? 실제로 추상 클래스의 획득은 수학에서 공통 요소를 추출하는 것과 비슷합니다. AX+BX, X는 추상 클래스입니다. 이전 공식이없는 경우 X가 공통 요소인지 어떻게 알 수 있습니까? 이와 관련하여, 그것은 또한 세상을 이해하는 사람들의 과정, 첫 번째 콘크리트 및 추상적입니다. 따라서 많은 특정 개념을 얻고 설계 프로세스에서 공통점을 찾으면이 공통점 모음이 추상 클래스라는 것이 사실이어야합니다.
2. 표면에서 인터페이스는 추상 클래스와 매우 유사하지만 사용량은 완전히 다릅니다. 그것의 기본 기능은 일부 관련없는 클래스 (개념)를 함께 모아 중앙에서 운영 가능한 "새로운 클래스"를 형성하는 것입니다. 내가 학생들에게주는 전형적인 예는 "드라이버"입니다. 누가 운전자가 될 수 있습니까? 운전 면허증을받는 한 누구나 할 수 있습니다. 그래서 나는 당신이 학생, 화이트 칼라 직원, 블루 칼라 직원 또는 상사인지 상관하지 않습니다. 운전 면허증이있는 한 운전자입니다.
인터페이스 DriverLicence {license getLicence (); } Class StudentDriver Extends Student extrends 학생 구현 {} 클래스 whtiecollaremployeedRiver 확장 whtiecollaremployee는 운전자를 구현하는 {} 클래스 BluecollaremployEedriver 확장 Bluecollaremployee가 운전자를 구현하는 {} class bossdriver extends driver {} {}"자동차"클래스를 정의하면 "드라이버"를 지정할 수 있습니다.
클래스 카 {setdriver (Driverlicence Driver);}현재 자동차의 물체는 운전자가 한 일을 신경 쓰지 않았습니다. 그들의 유일한 요점은 그들이 운전 면허증을 얻었다는 것입니다 (둘 다 운전자 인터페이스 구현). 이것은 인터페이스의 가장 강력한 부분이어야하며 추상 클래스와 비교할 수 없습니다.
요약 :
초록 클래스는 콘크리트 클래스의 공통 요소를 추출하는 반면 인터페이스는 일부 관련없는 클래스를 공통 그룹으로 "해시"하는 것입니다. 일반적으로 우리는 여러 인터페이스를 사용하는 좋은 습관을 개발합니다. 결국, Java는 C ++와 달리 단일 상속이지만, 추상 클래스 (GOTO와 다소 유사)를 사용할 때 사용해야합니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.