on
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