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. 자식이외에는 객체화 할 수 없다고 하는데, 객체화 한 예시가 잇는지>???