[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();
        }
      }
    

참고


Tags:

Categories:

Updated:

Leave a comment