티스토리 뷰
추상클래스??
추상 메서드를 하나라도 가지고 있는 클래스이고 클래스 선언부에 abstract 키워드를 명시해야 한다. 이러한 클래스를 추상 클래스라고 한다. 그리고 추상 클래스는 단독으로 인스턴스를 생성할 수 없다. 만약 인스턴스를 생성하고자 한다면 상속을 통해 자식 클래스에서 완성을 한 후 생성해야한다.
public abstract class Employee {
....
public abstract void 메서드(); //추상메서드
}
extends 키워드를 통해 자식 클래스에게 상속한다.
자바에서 추상클래스는 대게 공통된 속성을 추상 클래스에 묶음으로서 코드를 재사용할 수 있게 해준다.
인터페이스??
인터페이스는 다른 클래스를 작성하는데 도움을 주는 목적으로 작성하고 추상클래스와 다르게 implements 키워드로 다중상속이 가능하다. 단독으로 인스턴스를 생성하지 못한다.
public interface Car {
public static final 변수;
public abstract void 메서드이름();
}
자바8부터는 인터페이스 또한 default, static 메서드를 선언할 수 있게 되어서 추상 메서드 이외에 본문을 갖는 메서드가 인터페이스에 존재할 수 있게 되었다. 또한 자바9부터는 private 메서드도 선언할 수 있는데 이는 인터페이스 내에 default 메서드 내에 사용할 목적으로 본문을 구현하는데 사용한다.
public interface Runnable {
void running();
default void walking() {
System.out.println("walking");
}
}
위 코드를 보면 default 키워드를 통해 인터페이스에서 본문을 구현했다. 이는 상속을 받은 클래스에서 오버라이딩을 강제하지 않는다. 아래의 코드를 작성해보면 default 메서드인 walking에 대해 강제하지 않는다.
public class KoreaMan implements Runnable {
@Override
public void running() {
System.out.println("running");
}
}
'자바' 카테고리의 다른 글
[Java] 'this'와 'this()'의 차이 (0) | 2023.04.13 |
---|---|
[Java] ArrayList에 데이터를 추가할 때 add는 어떻게 동작할까? (0) | 2023.04.02 |
[Java] record 클래스 (0) | 2023.03.20 |
[Java] Call By Value와 Call By Reference (0) | 2023.02.02 |
[Java]String의 특징과 문제점 그리고 StringBuffer, StringBuilder (0) | 2022.12.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 4673번
- 백준#서강근육맨#20300
- 1978
- this()
- 스프링
- MVC
- 백준#잃어버린 괄호#1541
- 서블릿#Servlet
- Spring
- HTTP#HTTP특징
- controller
- 사탕 게임#백준#3085
- 프로그래머스
- 백준
- java
- querydsl
- 파이썬
- 1316번
- 회고
- 11659
- 백엔드#게시판
- 오류
- 대충 만든 자판
- 7568
- springboot
- 자바
- 게시판#자바#JPA#Entity
- 덧칠하기
- list
- arraylist
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함