JAVA 7강_5_인터페이스 다중 상속

열라뽕따히·2024년 2월 17일

JAVA

목록 보기
43/79
  • 인터페이스끼리 상속 받을 경우에는 extends를 사용함
  • 클래스가 인터페이스를 상속 받을 경우에는 implements를 사용함





<예시>



=============================코드=============================

package interfaces;

interface Inter1{
	
	void aa();
}

interface Inter2{
	
	void bb();
}

// 인터페이스끼리 상속 받을 경우에는 extends를 사용
interface Inter3 extends Inter1, Inter2 {    
	
	// void aa();     // 상속이 된 추상 메서드
	// void bb();     // 상속이 된 추상 메서드
	void cc();
}

// 클래스가 인터페이스를 상속 받을 경우 implements
// 클래스 안에 클래스를 만들 시 public 은 하나만 사용 가능! 사용 가능한 하나는 내가 선언한 클래스명과 동일해야함
// 인터페이스를 상속한다(X) -> 구현한다(O)
class Total implements Inter3 {

	@Override
	public void aa() {
		System.out.println("aa() 추상 메서드 재정의!");
		
	}

	@Override
	public void bb() {
		System.out.println("bb() 추상 메서드 재정의!");
		
	}

	@Override
	public void cc() {
		System.out.println("cc() 추상 메서드 재정의!");
		
	}
	
}

public class Main_02 {

	public static void main(String[] args) {
		
		Total total = new Total();
		
		total.aa(); total.bb(); total.cc();
		
	}

}

=============================실행=============================





<예시>



=============================코드=============================

package interfaces;

interface Camera {
	
	// 사진을 찍는 기능
	void photo();
}

interface Search {
	
	// TV 보는 기능
	void search();
}

interface MP3 {
	
	// 음악을 듣는 기능
	void playMusic();
}

class MyPhone implements Camera, Search, MP3 {

	@Override
	public void playMusic() {
		System.out.println("핸드폰으로 음악을 들어요!");
		
	}

	@Override
	public void search() {
		System.out.println("핸드폰으로 검색을 해요!");
		
	}

	@Override
	public void photo() {
		System.out.println("핸드폰으로 사진을 찍어요!");
		
	}
	
}

public class Main_03 {

	public static void main(String[] args) {
		
		MyPhone myPhone = new MyPhone();
		
		myPhone.playMusic();
		myPhone.photo();
		myPhone.search();
		
	}

}

=============================실행=============================





**어려웠던 점
-상속과 인터페이스가 다른 점에 대해 정확히 파악하는 것이 어려웠음..

상속 : 부모 클래스 자체의 기능을 가져오는 것, 부모클래스의 기능을 추가하거나 변동시킬 수 있음. 상속을 받을 수 있는 클래스는 하나밖에 없음

인터페이스 : 추상 클래스로 객체를 생성할 수 없으나 자식 클래스로 상속을 하여 자식 클래스에서 객체 생성 가능함. 다중 상속 가능

-인터페이스도 상속과 마찬가지로 클래스 파일을 따로 생성하여 상속할 수 있으나 한 파일 안에서 구현해낼 수 있는 것이 괜스레 어렵게 느껴짐..! 인터페이스와 인터페이스를 상속 받을 클래스, 메인메서드를 잘 구분하고 적절히 활용할 수 있도록 연습하자!

0개의 댓글