추천, 2024

에디터의 선택

Java에서 키워드를 확장하고 구현하는 차이점

키워드 extends 및 implements는 새로 생성 된 하위 블록에서 이미 존재하는 상위 블록의 기능을 상속하는 데 사용됩니다. extends 키워드를 사용하여 새로 생성 된 클래스 (하위 클래스)는 기존 클래스 (수퍼 클래스)의 기능을 상속받을 수 있습니다. implements 키워드를 사용하여 새로 생성 된 클래스는 인터페이스의 모든 메소드를 구현할 수 있습니다. 키워드의 확장과 구현의 주된 차이점은 클래스가 다른 클래스를 확장하여 모든 멤버를 상속 받지만 클래스는 인터페이스를 구현하여 모든 메소드를 상속하고 요구 사항에 따라 구현한다는 것입니다. 아래 비교 차트에서 논의 된 키워드 확장과 구현 간에는 몇 가지 다른 차이점이 있습니다.

비교 차트

비교의 근거확장하다구현
기본extends 키워드는 수퍼 클래스의 기능을 사용하여 서브 클래스를 만드는 데 사용됩니다.implements 키워드는 인터페이스의 구현에 사용됩니다.
행동 양식extends 키워드는 수퍼 클래스의 모든 메소드를 대체 할 수 없습니다.implements 키워드는 구현 된 인터페이스의 모든 메소드를 구현해야합니다.
수업클래스는 하나의 수퍼 클래스 만 확장 할 수 있습니다.클래스는 여러 개의 인터페이 스를 구현할 수 있습니다.
인터페이스인터페이스는 둘 이상의 인터페이스를 확장 할 수 있습니다.인터페이스는 다른 인터페이스를 구현할 수 없습니다.

확장 키워드 정의

객체 지향 프로그래밍에서 중요한 개념 인 상속은 서브 클래스가 다른 수퍼 클래스를 확장 할 때 이루어집니다. 서브 클래스는 하나의 수퍼 클래스 만 확장 할 수 있습니다. 클래스는 Java에서 하나 이상의 수퍼 클래스를 확장 할 수 없습니다. 클래스가 다른 클래스를 확장하면 수퍼 클래스에 정의 된 메서드를 재정의 할 수 있습니다. 키워드의 확장이 예제를 통해 이해할 수 있도록하겠습니다.

 클래스 A {문자열 s; A (문자열 s1) {s = s1; } // 문자열 표시 void display () {System.out.println (+ s); }} 클래스 B는 A {String i; B (문자열 s1, 문자열 i1) {수퍼 (s1); i = i1; } dispaly () {super.dispaly (); / * 클래스 A의 display ()가 호출 됨 * / System.out.println (+ i); }} 클래스 오버라이드 {public static void main (String args []) {B ob = new B (Tech, Differences); ob.display (); / * 클래스 B가 호출 됨 * /}} / * out put * / Tech Differences 

위의 코드에서 클래스 B는 클래스 A를 확장했으며 클래스 A에 정의 된 메서드 display ()를 재정의했다고 볼 수 있습니다. 비슷한 방식으로 인터페이스는 한 번에 둘 이상의 인터페이스를 확장 할 수 있습니다. 인터페이스는 확장 인터페이스의 어떤 메소드를 구현할 필요가 없으므로 한 번에 여러 인터페이스를 상속 할 수 있습니다.

implements 키워드의 정의

키워드 implements를 사용하여 클래스는 인터페이스의 모든 메소드를 상속받습니다. 클래스가 인터페이스를 구현하면 해당 클래스는 구현 된 인터페이스의 모든 메소드를 구현해야합니다. 인터페이스는 다른 인터페이스를 구현할 수 없습니다. implements 키워드는 메소드의 구현을 약속하지만 인터페이스는 메소드를 구현하지 않으므로 인터페이스가 다른 인터페이스를 구현할 수 없습니다. 예제를 통해 implements 키워드를 이해합시다.

 인터페이스 문자열 {void display (String s); } 인터페이스 정수 {void show (int i); } 클래스 데모는 문자열을 정수로 구현합니다. {void show (int i) {System.Out.Println ( "integer value :"+ i); } void display (String s) {System.Out.Println ( "string value :"+ s); }} 클래스 Demo_main {public static void main (string args []) {데모 d = 새 데모 (); d.display ( "TechDifferences"); d.show (2); }} / * 출력 * / TechDifferences 2 

위의 코드에서와 같이 클래스 데모는 두 개의 인터페이스 문자열과 정수를 구현하고 display () 및 show () 인터페이스 모두에 선언 된 메서드를 구현했다는 것을 알 수 있습니다.

확장과 구현의 주요 차이점

  1. 클래스는 다른 클래스를 상속받을 수도 있고 인터페이스가 키워드를 사용하여 다른 인터페이스를 상속 받지만 클래스는 키워드 구현을 사용하여 인터페이스를 구현할 수도 있습니다.
  2. 슈퍼 클래스를 확장하는 서브 클래스는 수퍼 클래스의 모든 메소드를 오버라이드 (override)하지 않을 수도 있습니다. 한편, 인터페이스를 구현하는 클래스는 해당 인터페이스의 모든 메소드를 정의 / 구현해야합니다.
  3. 클래스는 동시에 여러 인터페이스를 구현할 수 있습니다. 반면에 클래스는 하나의 수퍼 클래스 만 확장 할 수 있습니다.
  4. 인터페이스는 많은 수의 인터페이스를 확장 할 수 있지만 인터페이스는 메소드를 정의하는 구현 수단과 인터페이스가 항상 추상 메소드를 갖기 때문에 다른 인터페이스를 결코 구현할 수 없으므로 인터페이스는 결코 다른 인터페이스를 구현할 수 없습니다.

결론:

인터페이스를 구현하면 클래스를 확장하는 것보다 코드가 더 유연해진다는 논의가 끝났습니다. Java에서 하나의 수퍼 클래스를 상속하는 제한을 피할 때. implements 키워드를 사용하면 클래스가 둘 이상의 인터페이스의 기능을 상속받을 수 있습니다.

Top