Home [Java] 클래스, 인터페이스, 상속에 대해
Post
Cancel

[Java] 클래스, 인터페이스, 상속에 대해

2월 1주차 스터디 발표 자료📖
기술 면접을 준비하며 정했던 주제 중 6번 째 주제입니다!
클래스,인터페이스,상속,구현에 대해 정리하고자 합니다.

클래스


클래스란?

  • 클래스란 객체를 정의하는 틀 또는 설계도이다.
  • 클래스는 객체의 상태를 나타내는 필드객체의 행동(역할)을 나타내는 메소드로 구성되어있다.
  • 메소드? 어떠한 특정 작업을 수행하기 위한 명령문의 집합

상속?

  • 부모 클래스(Super Class)에 정의된 필드와 메소드를 자식 클래스(Sub Class)가 물려 받는 것
  • 기존의 클래스(부모)에 기능을 추가하거나 재정의하여 새로운 클래스를 정의한다.
    기능 확장의 개념
  • 상속의 특징?
    1. 다중 상속을 지원하지 않는다. extends 뒤에는 단 하나의 부모 클래스만 올 수 있다.
    2. 자바는 상속의 횟수에 제한을 두지않는다.
    3. 자바의 최상위 클래스는 Object 클래스이며, 자바의 모든 클래스는 Object 클래스의 자식 클래스이다.
    4. 부모 클래스의 접근 제어자가 private이면, 상속을 받을 수 없다.
    5. 부모클래스에서 상속 받은 메소드를 재정의 하는 것을 오버라이딩이라고 한다.
  • 상속의 장점?
    1. 기존에 작성된 클래스를 재활용 할 수 있다.
    2. 코드의 중복을 줄일 수 있다.
    3. 유지 보수가 간단해진다. (부모 클래스의 수정이 자식 클래스에도 반영)
    4. 클래스 간의 계층적 분리를 도와줘 분류,관리에 이점이 있다.

인터페이스


인터페이스란?

  • 추상 메서드와 상수로만 이루어져있는 추상 자료형
  • 구현 객체의 동일한 실행 기능을 보장하기 위한 목적으로 사용
  • 서로 관계없는 클래스들을 묶을 때 사용
  • 인터페이스의 특징?
    1. 다중 상속처럼 사용이 가능하다.
    2. 객체를 생성할 수 없다. - 생성자가 없음
    3. 인터페이스가 가지는 메서드는 모두 public 접근 지정자이다

  • 인터페이스의 장점?
    1. 표준화가 가능하다.
      ➔ 클래스의 기본틀을 제공하여, 정형화된 개발을 강요할 수 있다.
    2. 개발 시간을 단축할 수 있다.
      인터페이스가 작성되면, 인터페이스를 사용하는 쪽과 인터페이스의 구현부를 구현하는 쪽이 동시에 개발을 진행할 수 있다.
    3. 독립적인 프로그래밍이 가능하다.
      ➔ 클래스의 선언과 구현을 분리시킴으로써 독립적인 프로그래밍이 가능하다. 즉, 한 클래스의 변경이 관련된 다른 클래스에 영향을 미치지 않는다.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      
       class A {
           // 매개변수로 객체 B -> C 변경 시, 관련된 클래스에 영향을 미칠 수 있음.
           public void methodA(B b){
               b.method();
           } 
       }
      
       // 인터페이스로 간접관계 변경(A-Interface-B)
       class A{
           public void methodA(I i){
               i.method();
           }
       }
      

구현이란?

  • 특정 인터페이스를 클래스에서 구현한다는 것
  • 부모의 메소드를 반드시 오버라이딩해야한다.(강제력)
This post is licensed under CC BY 4.0 by the author.