2월 1주차 스터디 발표 자료📖
기술 면접을 준비하며 정했던 주제 중 6번 째 주제입니다!
클래스,인터페이스,상속,구현에 대해 정리하고자 합니다.
클래스
클래스란?
- 클래스란 객체를 정의하는 틀 또는 설계도이다.
- 클래스는 객체의 상태를 나타내는 필드와 객체의 행동(역할)을 나타내는 메소드로 구성되어있다.
- 메소드? 어떠한 특정 작업을 수행하기 위한 명령문의 집합
상속?
- 부모 클래스(Super Class)에 정의된 필드와 메소드를 자식 클래스(Sub Class)가 물려 받는 것
- 기존의 클래스(부모)에 기능을 추가하거나 재정의하여 새로운 클래스를 정의한다.
➔ 기능 확장의 개념 - 상속의 특징?
- 다중 상속을 지원하지 않는다. extends 뒤에는 단 하나의 부모 클래스만 올 수 있다.
- 자바는 상속의 횟수에 제한을 두지않는다.
- 자바의 최상위 클래스는 Object 클래스이며, 자바의 모든 클래스는 Object 클래스의 자식 클래스이다.
- 부모 클래스의 접근 제어자가 private이면, 상속을 받을 수 없다.
- 부모클래스에서 상속 받은 메소드를 재정의 하는 것을 오버라이딩이라고 한다.
- 상속의 장점?
- 기존에 작성된 클래스를 재활용 할 수 있다.
- 코드의 중복을 줄일 수 있다.
- 유지 보수가 간단해진다. (부모 클래스의 수정이 자식 클래스에도 반영)
- 클래스 간의 계층적 분리를 도와줘 분류,관리에 이점이 있다.
인터페이스
인터페이스란?
- 추상 메서드와 상수로만 이루어져있는 추상 자료형
- 구현 객체의 동일한 실행 기능을 보장하기 위한 목적으로 사용
- 서로 관계없는 클래스들을 묶을 때 사용
- 인터페이스의 특징?
- 다중 상속처럼 사용이 가능하다.
- 객체를 생성할 수 없다. - 생성자가 없음
- 인터페이스가 가지는 메서드는 모두 public 접근 지정자이다
- 인터페이스의 장점?
- 표준화가 가능하다.
➔ 클래스의 기본틀을 제공하여, 정형화된 개발을 강요할 수 있다. - 개발 시간을 단축할 수 있다.
➔ 인터페이스가 작성되면, 인터페이스를 사용하는 쪽과 인터페이스의 구현부를 구현하는 쪽이 동시에 개발을 진행할 수 있다. 독립적인 프로그래밍이 가능하다.
➔ 클래스의 선언과 구현을 분리시킴으로써 독립적인 프로그래밍이 가능하다. 즉, 한 클래스의 변경이 관련된 다른 클래스에 영향을 미치지 않는다.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(); } }
- 표준화가 가능하다.
구현이란?
- 특정 인터페이스를 클래스에서 구현한다는 것
- 부모의 메소드를 반드시 오버라이딩해야한다.(강제력)