[Java] Implements & Extends
Updated:
메소드나 변수를 구현하는가? 아니면 그대로 사용하는가?
Extends
- 상속
- 클래스를 확장
- 부모에서 선언, 정의를 모두 마쳐 자식을 그대로 사용
- 부모의 메소드를 그대로 사용할 수 있으며 오버라이딩을 하지 않아도 된다
- java에서는 extends 다중상속을 지원하지 않음.
- 일반클래스와 abstract 클래스의 상속에 사용
- 클래스 - 클래스 상속
- 인터페이스 - 인터페이스 상속
- 클래스와 클래스의 상속, 인터페이스와 인터페이스의 상속에 사용
-
사용
class Vehicle { protected int speed = 3; public int getSpeed(){ return speed; } public void setSpeed(int speed){ this.speed = speed; } } class Car extends Vehicle{ public void printspd(){ System.out.println(speed); } } public class ExtendsSample { public static main (String[] args){ Car A = new Car(); System.out.println(A.getSpeed()); A.printspd(); } }
Implements (interface 구현)
- 상속
- 부모 객체는 선언만 하며 정의는 자식에서 오버라이딩(재정의)으로 사용
- implements 다중상속을 지원함
- 클래스가 인터페이스를 상속할 때 사용
- 클래스(가) - 인터페이스(를) 상속
- 인터페이스를 구현
-
사용
interface TestInterface{ public static int num = 8; public void fun1(); public void fun2(); } class InterfaceExam implements TestInterface{ @Override public void fun1(){ System.out.println(num); } @Override public void fun2() { } } public class InterfaceSample{ public static void main(String args[]){ InterfaceExam exam = new InterfaceExam(); exam.fun1(); } }
참고
- https://velog.io/@hkoo9329/자바-extends-implements-차이
- https://ppomelo.tistory.com/126
Leave a comment