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

19.02.26 09:54 작성 조회수 74

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

이기백님의 프로필

이기백

질문자

2019.04.02

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

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

0

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