inflearn logo
강의

Course

Instructor

Do it! Introduction to Java Programming with Eun Jong

Using the interface (3)

인터페이스와 가상 메서드

354

hoyaa113

1 asked

0

아래 코드에서 Customer 클래스는 Buy, Sell 인터페이스를 구현하고 buy, sell, order 메서드를 갖고 있는데,

buyer.sell()은 왜 실행되지 않는건지 궁금합니다.

가상메서드에 의해 Customer 클래스의 sell 메서드가 불리는 것이 아닌가요?

public class CustomerTest {

	public static void main(String[] args) {
		Customer customer = new Customer();
		
		Buy buyer = customer;
		buyer.buy();
		
		Sell seller = customer;
		seller.sell();
		
//		가상 메서드 : 인스턴스의 메서드가 불림
		customer.order();
		buyer.order();
		seller.order();
	}

}

java

Answer 1

0

k1m2njun [DEL] 250925170311

buyer 의 타입이 Buy 입니다.

Buy 인터페이스에는 구현하지 않은 buy() 메서드와
기본 메서드인 order() 두 가지이죠.

인스턴스를 인터페이스 타입의 변수에 바인딩하는 경우, 각 인터페이스에서 선언한 메서드만 호출 할 수 있습니다.
반면 두 인터페이스의 메서드를 구현한 클래스의 인스턴스의 경우 모두 호출할 수 있습니다.

그런데 두 인터페이스에서 중복된 메서드를 구현 클래스에서 재정의하고
이를 인터페이스 타입의 변수와 구현 클래스의 인스턴스로 호출한 결과는
모두 인스턴스의 오버라이딩한 메서드가 호출됩니다.

이클립스 활성화가 안되는부분이있어요ㅜㅜ

0

429

1

책에 자료실

0

495

1

StudentID

0

553

1

11분쯤 price, int price 질문

0

350

1

For문 (중첩된 반복문) 구구단 문의 드립니다.

0

782

1

반복문 별 출력 연습문제

0

390

1

비트 연산자 질문입니다.

1

367

1

Scheduler scheduler = null 굳이 하는 이유가 있나요

1

333

0

Class간의 연결

1

292

1

선생님 스킬

0

392

1

초기화 에러!!!

0

282

1

선생님 영상에서 목소리가 좀 작은 것 같습니다 ㅠㅠ

2

300

0

출력

2

230

0

Main 함수 저번 강의 거가 나와요

0

312

1

결과값오류

1

222

0

printIn 함수 질문

0

449

1

24분 57초에 질문 있습니다!!

0

359

1

1분36초쯤에 말씀하시는 자바닥??그거 보라고 하셨는데 자바닥이 뭐죠..?

0

246

1

메서드와 생성자

0

393

2

참조형 데이터 타입은 클래스 이름과 같아야 하나요?

0

282

1

반환값은 정수 밖에 안되나요?

0

270

1

9분33초 설명!!부탁 드립니다!

0

296

1

48분쯤에 {"B","C","D""} 를 왜 {'B','C','D'}로 바꿨죠?

0

294

1

for (byte b : bs) 가 뭐죠..

0

501

1