extends(상속), implements(상속,구현),abstract(강제 상속..?)

extends(상속), implements(상속,구현),abstract(강제 상속..?)

반응형

extends

- 부모 클래스가 가진 메소드나 변수를 자식클래스에서도 그대로 물려받아 사용.

- extends는 자식클래스에서 사용해야 하고 하나의 부모클래스만 상속이 가능하다.

- extends를 사용할 수 있는 경우

1) class가 class를 상속할 경우

2) interface가 interface를 상속할 경우

implements(interface구현)

- 부모객체에는 메소드나 변수를 선언만 하고 기능적 구현은 하지 않는다.

자식클래스에서는 선언만 된 메소드를 @override로 구현(implements)해주는 것을 말한다.

- 자바는 다중상속을 지원하기 않기 때문에 implements가 등장했다.

implements는 다중상속을 대신해준다.

public class Son implements Father, Mother{...}

- 자식클래스에서 사용된 부모의 클래스는 반드시 @override를 통해 구현되어야만 한다.

extends 와 implements 정리

- extends는 일반 클래스와 abatract클래스 상속에 사용되고, implement는 interface상속에 사용된다.

- class가 class를 상속받을 때는 extends를 사용, interface가 interface를 상속받을 때는 extends를 사용한다.

- class가 inteface를 사용할 때는 implements를 써야하고 interface가 class를 사용할때는 implements를 쓸 수 없다.

- extends는 클래스 한개만 상속받을 수 있다. (부모가 여러명은 아니니까.)

- extends 를 사용한 클래스는 부모 클래스의 기능을 이용한다.

- implements는 여러개 사용 가능하다.

- implements는 설계목적으로 구현 가능하다.

- implements한 클래스는 implements의 내용을 다 사용해야 한다.

- extends는 클래스를 확장하는 거고 implements는 인터페이스를 구현하는 것이다.

인터페이스와 보통 클래스의 차이는 인터페이스는 정의한 메소드를 구현하지 않아도 된다.

인터페이스를 상속받은 클래스에서 인터페이스에 정의된 메소드를 구현하면 된다.

abstract (추상 메소드)

- 상속을 강제하는 규제.. 즉, abstract클래스나 메소드를 사용하기 위해서는 반드시 상속해서 사용하도록 강제한다.

- 하위 클래스에서 반드시 부모 클래스의 메소드를 사용하도록 강제할 수 있는 클래스.

[참조]

https://velog.io/@hkoo9329/%EC%9E%90%EB%B0%94-extends-implements-%EC%B0%A8%EC%9D%B4

https://pinokio0702.tistory.com/140

https://xianeml.tistory.com/32

https://velog.io/@gillog/Java-Interface-vs-Abstract-Class-%EC%A0%95%EB%A6%AC

반응형

from http://action713.tistory.com/1652 by ccl(A) rewrite - 2021-12-07 12:01:37