=============================코드=============================
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();
}
}
=============================실행=============================

**어려웠던 점
-상속과 인터페이스가 다른 점에 대해 정확히 파악하는 것이 어려웠음..
상속 : 부모 클래스 자체의 기능을 가져오는 것, 부모클래스의 기능을 추가하거나 변동시킬 수 있음. 상속을 받을 수 있는 클래스는 하나밖에 없음
인터페이스 : 추상 클래스로 객체를 생성할 수 없으나 자식 클래스로 상속을 하여 자식 클래스에서 객체 생성 가능함. 다중 상속 가능
-인터페이스도 상속과 마찬가지로 클래스 파일을 따로 생성하여 상속할 수 있으나 한 파일 안에서 구현해낼 수 있는 것이 괜스레 어렵게 느껴짐..! 인터페이스와 인터페이스를 상속 받을 클래스, 메인메서드를 잘 구분하고 적절히 활용할 수 있도록 연습하자!