강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이기백님의 프로필 이미지
이기백

작성한 질문수

처음시작하는 Google 공식 개발 언어 Kotlin

인터페이스

클래스 -> 테스트 메소드 호출 연결 부분에서 혼동이 와서 질문합니다.

작성

·

222

0

클래스에서 해당 인터페이스를 사용하게 되는데 main 함수에서 test_method로 클래스 타입을 넘길 때 혼동이 와서 문의 합니다.

main()...

{

var t1 = TestClass1()

test_method1(t1) //매개 class 형이 매개변수 타입이 되어야 할거라고 예상했음

}

fun test_method1(a1 : Inter1){ // a1 변수로 Inter1 타입으로 받는다는건지???

a1.method1()

a1.method2()

}

기존 자바사용하는 방식이랑 다른것 같아 문의합니다.

감사합니다.

답변 2

0

이기백님의 프로필 이미지
이기백
질문자

음 기존 자바 메소드라고 한다면 public String method(ClassType a) 형식으로 메소드를 사용하는데 코틀린은 이런 부분이 명시적으로 보이지 않아서 질문드린겁니다...

a1으로 call by reference 고 Inter1이라는 타입으로 함수 리턴인건지 아니면 함수 리턴형이 void인건지 헷갈리더군요.

0

소프트캠퍼스님의 프로필 이미지
소프트캠퍼스
지식공유자

자바와 동일한 부분입니다. 자바 뿐만 아니라 대부분의 객체지향 프로그래밍 언어들은 객체의 클래스 타입 변수에 주소값을 담는것 뿐만 아니라 상속관계에서의 부모클래스형 참조변수, 구현한 인터페이스형 참조변수에 담을 수 있습니다. 단 부모클래스가 있지고 있는 맴버나 인터페이스에 정의된 추상메서드를 구현한 메서드만 사용이 가능합니다. 이는 객체지향 프로그래밍 언어 이론에 나오는 다형성과 관련된 부분이며 자바를 포함한 대부분의 객체지향 프로그래밍 언어들이 지원합니다.

이기백님의 프로필 이미지
이기백

작성한 질문수

질문하기