Language/Java

extends vs implements

JUNGKEUNG 2021. 7. 12. 20:40
반응형

extends


extends는 상속의 대표적인 형태이다.

모든 선언/정의를 부모가 하며, 자식은 오버라이딩 할 필요 없이 부모의 메소드/변수를 그대로 사용할 수 있다.

그리고 자바는 다중 상속을 지원하지않는다.

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


부모는 선언만 하며, 반드시 자식이 정의를 오버라이딩 해서 사용한다.

해당 인터페이스에 있는 프로퍼티 및 메소드를 전부 가지고 있거나 구현해야 한다.

위에서 자바는 다중상속을 지원하지 않는다 대신 implenments(인터페이스) 가 등장했다.

 

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/%EC%9E%90%EB%B0%94-extends-implements-%EC%B0%A8%EC%9D%B4

'Language > Java' 카테고리의 다른 글

변수의 타입  (0) 2021.09.06
자바란?  (0) 2021.09.06
GC 가비지 컬렉션 이란?  (0) 2021.07.05
프로세스와 스레드 차이점  (0) 2021.06.30
Statement와 PreparedStatement 차이  (0) 2021.06.30