
비교 차트
비교의 근거 | 확장하다 | 구현 |
---|---|---|
기본 | 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 () 인터페이스 모두에 선언 된 메서드를 구현했다는 것을 알 수 있습니다.
확장과 구현의 주요 차이점
- 클래스는 다른 클래스를 상속받을 수도 있고 인터페이스가 키워드를 사용하여 다른 인터페이스를 상속 받지만 클래스는 키워드 구현을 사용하여 인터페이스를 구현할 수도 있습니다.
- 슈퍼 클래스를 확장하는 서브 클래스는 수퍼 클래스의 모든 메소드를 오버라이드 (override)하지 않을 수도 있습니다. 한편, 인터페이스를 구현하는 클래스는 해당 인터페이스의 모든 메소드를 정의 / 구현해야합니다.
- 클래스는 동시에 여러 인터페이스를 구현할 수 있습니다. 반면에 클래스는 하나의 수퍼 클래스 만 확장 할 수 있습니다.
- 인터페이스는 많은 수의 인터페이스를 확장 할 수 있지만 인터페이스는 메소드를 정의하는 구현 수단과 인터페이스가 항상 추상 메소드를 갖기 때문에 다른 인터페이스를 결코 구현할 수 없으므로 인터페이스는 결코 다른 인터페이스를 구현할 수 없습니다.
결론:
인터페이스를 구현하면 클래스를 확장하는 것보다 코드가 더 유연해진다는 논의가 끝났습니다. Java에서 하나의 수퍼 클래스를 상속하는 제한을 피할 때. implements 키워드를 사용하면 클래스가 둘 이상의 인터페이스의 기능을 상속받을 수 있습니다.