BACK END/JAVA
[정리]추상화, 인터페이스
dinoelll
2023. 3. 2. 00:01
추상화 abstract | 인터페이스 inferface |
추상화 : 는 공통되는 특징을 단순화 시키는것 |
|
사용 : 실체클래스가 extends 하여 사용 | 사용 : 실체 클래스가 implements 하여 사용 |
추상클래스 : 1. abstract 키워드를 사용한다. 2. 자식 이외에는 객체화 시킬 수 없다.(Maincontroller보면 클래스들만 객체화 하는걸 볼 수 있음) 3. 추상 클래스를 상속 받으면 강제로 override 하게 됨 4. ** 이 과정을 통해 규격화 시키는것임 |
1. inferface라는 키워드를 사용 2. 객체화는 불가능하다.(나중에 보면 익명객체로 사용함) + 객체화를 못시키기 때문에 기생하는 클래스가 있어야 함 3. 전부다 override 되는것만 있음 |
추상메서드 : 1. 형태만 있고 , 몸체는 없는 메서드임(오버라이드 할꺼니까 내용이 없음) + 일반메서드는 상속받기 때문에 자동으로 사용 가능함 |
1. 일반메서드는 default 키워드 추가 시 사용가능함(어차피 추상화 메서드로만 이루어져 있기 때문에 굳이 abstract를 안붙여준거임)(jdk.18) |
복수개 사용 x | 복수개 사용 o - 분류가 아니라 규격의 개념이기 때문에 '모듈화'의 느낌임 |
둘다 정적 메서드 사용 가능(jdk.18) |
<추상클래스>
public abstract class StandardModel {
//추상 클래스에는 읿반 메서드와 추상메서드가 존재한다.
//1. 일반 메서드(그냥 사용하면 된다.)
public String jump(String job) {
return job+" 가 점프 한다.";
}
//2. 추상 메서드
//추상 메서드는 몸체가 없는 메서드
//추상 클래스를 상속받으면 반드시 오버라이드 해야하는 메서드
public abstract String skill(String job);
public abstract String useItem(String job);
}
Q. 자식이외에는 객체화 할 수 없다고 하는데, 객체화 한 예시가 잇는지>???