2022. 2. 7.ㆍ공부/OOP
객체지향프로그래밍에서 객체는 한 개 이상의 자료형 타입을 가질 수 있으며, 이러한 객체의 특성을 다형성이라고 부른다. 객체의 다형성은 class를 상속 받거나, interface로 구현한다.
* abstract class
추상 메서드를 선언하여 상속을 통해서 자식 클래스에서 완성하도록 유도하는 클래스를 말한다.
Class 앞에 'abstract'라는 예약어를 사용하여 상속을 통해서 구현해야 한다는 것을 알려주고 선언부만 작성하는 추상 메서드를 선언할 수 있다. 추상 클래스는 객체를 생성할 수 없다.
abstact class [클래스이름] {
public astract void [메서드이름]();
}
* Interface
구체적인 코드의 구현 없이 객체가 가지고 있어야 하는 기능만을 명시한 클래스를 말한다.
일반적인 기능을 가진 추상 클래스와는 다르게 완벽한 추상화를 구현할 때 사용한다.
static final 상수 필드와 abstract 메소드, default 메소드, 정적 메소드를 멤버로 선언한다.
inteface [인터페이스 이름] {
public static final [상수 이름] = [값];
public abstract void [메서드이름]();
}
1. 멤버의 접근지정자를 선언하지 않아도 public을 default로 가진다.
2. 클래스와는 달리 다중 상속을 허용한다. (인터페이스 간 상속도 가능)
3. 인터페이스를 상속받은 자식 클래스는 인터페이스에 선언된 추상 메소드를 정의하여야 하며 만일 추상 메소드를 정의하지 않으면 자식 클래스는 추상 클래스가 된다..
4. 인터페이스 간 상속은 extends 키워드 사용하며, 클래스와 인터페이스 간 상속은 implements 키워드 사용한다.
자바의 특성 상 한 개의 클래스만 상속이 가능하기 때문에, 클래스의 구분은 추상 클래스의 상속을 통해 해결하고, 할 수 있는 기능들은 다중 상속이 가능한 인터페이스를 통해 구현한다. (일반 클래스에서 인터페이스 여러개를 상속 받을 수 있다.)
'공부 > OOP' 카테고리의 다른 글
JAVA에서의 예외처리 (try~catch~finally / 이중 catch문) (0) | 2022.02.14 |
---|---|
Overriding과 Overloading의 차이점 (0) | 2022.02.07 |
컴공 뚝배기 깨는 별찍기 (0) | 2022.01.18 |
문제 풀이 (0) | 2022.01.18 |
중첩 반복문 ^-ㅠ (0) | 2022.01.11 |