kenzi

인터페이스와 추상클래스 정리 본문

자바

인터페이스와 추상클래스 정리

kenzi 2022. 4. 6. 00:31

인터페이스 

추상메서드의 집합 

구현된 것이 전혀 없는 설계도

상수, 추상메서드로만 이루어져 있고 변수 가질 수 없음 

 

추상클래스 

추상메서드가 있는 클래스 

미완성 설계도 

생성자, 변수, 메서드 + 추상메서드 

 

공통점 

1. 추상메서드 (메서드의 선언부만 존재하고 구현부는 없는) 가 있다 

 

차이점 

1. 인터페이스는 변수를 가질 수 없고 추상 클래스는 변수를 가질 수 있다 

2. 인터페이스의 조상은 인터페이스이고(인터페이스로부터만 상속가능) 추상 클래스의 조상은 Object이다 

3. 추상메서드를 구현하는 방식이 다르다

- 인터페이스는 구현클래스에서 implement로 추상메서드를 구현하고 

추상 클래스는 자손클래스에서 extend로 상속받아서 추상메서드를 구체화한다 

4. 인터페이스는 다중상속이 가능하지만 추상클래스는 다중상속이 불가능하다 

ex) interface Kenzi extends interface Ground, interface Tistory {~~}

//추상 클래스 

abstract class Player {

	boolean pause; // 인스턴스 변수 iv
    int currentPos; // 인스턴스 변수 iv
    Player() { // 생성자 
    pause = false;
    currentPos = 0;
    }
    
    abstract void play(int pos); // 추상 메서드 
    abstract void stop();        // 추상 메서드
    void play() {                // 메서드 
    	play(currentPos);
    }
    
 } 
 
 
 
 
 //인터페이스
 
 interface Fightable(){ 
 	//추상 메서드만 존재 
 	void move(int x, int y); 
    void attack(Unit u);
  }

 

'자바' 카테고리의 다른 글

컬렉션 프레임워크  (0) 2022.04.10
for문  (0) 2022.04.10
배열  (0) 2022.04.07
자바 객체지향 정리  (0) 2022.04.01
Comments