JavaRush /Java Blog /Random-KO /인터페이스는 왜 필요한가요?
Павел
레벨 11

인터페이스는 왜 필요한가요?

Random-KO 그룹에 게시되었습니다
인터페이스는 왜 필요한가요? 인터페이스 상속이 필요한 이유는 무엇입니까? 다형성이 필요한 이유는 무엇입니까? 인터페이스 만드는 방법을 읽고 이해했지만 그 이유를 이해하지 못한 사람들을 위한 것입니다.

면책조항: 이 기사와 후속 기사에서는 클래스와 메소드의 이름이 러시아어로 제공됩니다.

객체지향 프로그래밍(OOP)의 원칙인 다형성, 상속, 캡슐화에 관해서는 실제 비유를 사용하는 것이 유용합니다. OOP의 가장 큰 장점은 프로그램에서 실제 우주의 일부를 시뮬레이션할 수 있다는 것입니다. Ivanov 가족( 아빠 , 엄마 , 아들 Petya) 을 모델링해 보겠습니다 . 아빠 에게서 페티야는 차를 마실 때 후루룩 마시는 습관을 물려받았고, 엄마에게서는 책을 읽으면서 입술을 오므리는 습관을 물려받았습니다. 이 상황을 프로그램으로 구현하려고 하면 세 가지 클래스가 생성됩니다.
class Папа
class Мама
class Петя
아빠엄마는 피트에게 물려주어야 할 습관이 있습니다 . 습관은 일종의 행동이므로 소프트웨어 세계에서 습관을 메소드로 구현하는 것이 가장 좋습니다 .
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
    }
}
이제 엄마 :
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
   }
}
상속에 관해 이야기하고 있다면 다음과 같이 코드를 작성하는 것이 논리적입니다.
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
즉, 아빠엄마 로부터 동시에 Petya를 물려받는 것입니다. 이렇게 작성하면 컴파일러가 불평할 것입니다. 왜냐하면 Java에서는 다중 클래스 상속을 구현할 수 없기 때문입니다. 그건 그렇고, C++에서는 가능하지만 Java에서는 불가능합니다. 다중 상속으로 인해 큰 문제가 발생할 수 있기 때문입니다. 인터넷에 자세히 작성되어 있습니다 . 이 "불가능"을 해결하기 위해 Java에는 인터페이스가 있습니다. 그리고 습관을 위해 우리는 우리 자신의 인터페이스를 생각해 낼 것입니다. 두 개라도: 다음과 같이 보일 것입니다: 인터페이스는 왜 필요한가요?  - 1
public interface ПривычкиПапы {
    public void прихлюпывать();
}
public interface ПривычкиМамы {
    public void поджимать();
}
인터페이스에서는 습관만 설명했을 뿐, 습관이 구체적으로 무엇을 하는지는 설명하지 않았습니다. 구체적인 구현을 클래스에서 작성할 것이기 때문입니다. 먼저 아빠 , 엄마에게 법적인 습관을 들이자 .
class Папа implements ПривычкиПапы {

   @Override
    public void прихлюпывать() {
     System.out.println("Хлюп");
   }
}

class Мама implements ПривычкиМамы{

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
그리고 이제 아빠엄마 의 습관을 동시에 피트에게 전달하는 것은 절대적으로 합법적입니다.
class Петя implements ПривычкиПапы, ПривычкиМамы {

@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
즉, Java에서는 다중 구현(더 자주 구현이라고 함)이 가능합니다. 인터페이스는 왜 필요한가요?  - 2이제 인터페이스의 의미가 명확해졌습니다. Java에서는 인터페이스를 사용하여 다중 상속을 구현할 수 있습니다. 예를 들어, 상황을 더 발전시키면 결국 아빠엄마는 Petya에게 전달되지 않은 습관이 있을 수 있으며 Petya 도 자신의 개인적인 습관이 있을 수 있습니다. 다음 에피소드에서는 이 중요한 Santa Barbara를 Java 평면으로 전송하는 방법을 배우게 됩니다. 이것이 인터페이스를 이해하기 위한 유일한 예는 아닙니다. 다음 기사를 읽지 않았다면 반드시 읽어보십시오: Java의 인터페이스 (열리지 않은 경우 프로필을 종료하거나 시크릿 모드에서 읽을 수 있음) 인터페이스가 필요한 이유 Java - 여기 기사의 모든 예제를 구현하고 인터페이스와 클래스 모두에서 메서드 이름, 서명(메서드가 입력으로 사용하는 것), 메서드 출력 유형 등 메서드를 변경합니다. 스스로 이해하십시오: - 클래스와 추상 클래스를 사용하여 인터페이스를 구현할 때의 차이점 - 기본 방법.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION