모든 클래스는 클래스의 모든 멤버와 구현하는 모든 인터페이스를 포함하는 인터페이스를 암시적으로 정의합니다. 만약 클래스 B의 구현을 상속하지 않고 클래스 B의 API를 지원하는 A 클래스를 생성하려면 클래스 A가 인터페이스 B를 구현해야 합니다.
클래스는 하나 이상의 인터페이스를 implements 절에 선언한 다음 인터페이스에 필요한 API를 구현합니다.
// Person 클래스는 암시적 인터페이스인 greet() 메서드를 갖습니다.classPerson {// 인터페이스에 있지만, 이 라이브러리에서만 접근 가능합니다.finalString _name;// 생성자는 인터페이스에 존재하지 않습니다.Person(this._name);Stringgreet(String who) =>'Hello, $who. I am $_name.';}// Person 인터페이스를 구현합니다.classImpostorimplementsPerson {// Error: The non-abstract class 'Impostor' is missing implementations for these members: - Person._nameStringget _name =>'';Stringgreet(String who) =>'Hi $who. Do you know who I am?';}StringgreetBob(Person person) => person.greet('Bob');voidmain() {print(greetBob(Person('Kathy')));print(greetBob(Impostor()));}