참조: https://e2xist.tistory.com/581(새 창 열림)
abstract class / method: 추상 클래스 / 메소드
interface: 인터페이스
concrete class / method: 구상 클래스 / 메소드
- 구현이 완료된 클래스 / 메소드
super class: 상위 클래스, 기반 클래스(base 클래스)와 혼용된다.
단, 슈퍼 클래스라는 용어는 다른 언어에서는 최상위 클래스를 뜻하기도 한다.
sub class: 하위 클래스, 파생 클래스, 유도 클래스(derived class), 자식 클래스(child class)와
혼용된다.
instance: 인스턴스
- 클래스로부터 만들어진 객체
inherit[inheritance]: 상속
extends: 자식 클래스가 부모 클래스의 형식으로 확장한다(extend)는 의미.
implements: 인터페이스를 클래스로 구현한다는 의미.
추상 클래스
- 멤버: 필드(상수도 가능), 추상 메소드, 구상 메소드
- 여러 개의 추상 클래스를 상속할 수 없다.
- 자식 클래스들의 공통점(필드, 메소드)을 추려놓은 것
- 인스턴스 생성 불가
인터페이스
- 멤버: 상수 필드, 추상 메소드, 정적 메소드, 디폴트 메소드,
- 여러 개의 인터페이스를 구현할 수 있다.
- 구현 클래스들의 공통점을 추려놓은 것: (가상) grouping
- 인스턴스 생성 불가
구상 클래스
- 멤버: 필드(상수도 가능), 메소드, 생성자, 구상 메소드
- 여러 개의 구상 클래스를 상속할 수 없다.
- 추상 메소드는 가질 수 없다. 추상 메소드가 하나라도 있으면 추상 클래스.
Overloading: 오버로딩
- 메소드의 매개변수 값, 개수, 반환형 등이 달라도 이름은 같으면 다른 메소드로
인식한다.
Overriding: 오버라이딩(재정의)
- 부모 클래스에서 상속받은 메소드를 자식 클래스에서 다르게 사용하고 싶다면,
자식 클래스에서 기능을 재정의하면 된다.
이 때 @Override 라는 annotation으로 재정의된 메소드임을 명시하는 게 좋다.
'Programming > Java' 카테고리의 다른 글
Managed code (0) | 2019.07.04 |
---|---|
IO 입출력 (0) | 2019.05.23 |
자바에서의 배열 선언 및 초기화 (0) | 2019.05.08 |
BigInteger 클래스 (0) | 2019.04.17 |
[과제] 호텔 예약 프로그램 (0) | 2019.04.08 |