본문 바로가기
프로그래밍 언어/Java

extends vs implements: 단일 vs 다중 상속

by seongjko 2025. 5. 28.
728x90

왜 extends 뒤에는 클래스가 단 하나만 존재할 수 있고, implements 뒤에는 인터페이스가 여러개 존재할 수 있을까?

클래스로부터는 구현을 물려받고, 인터페이스로부터는 구현을 물려받지 않기 때문이다.

구현을 물려받는다는 것은 곧 지시사항을 물려받는 것이다.

여러 명의 부모로부터 지시사항을 물려받는다면 자식의 입장으로서는 어떤 부모의 지시사항을 따라야 할지 알 수가 없다.

 

class A {
	print() {
		System.out.println("A");
	}
}

class B {
	print() {
		System.out.println("B");
	}
}


class C extends A, B { // <-------- 이런 식의 사용이 가능하다면

	public static void main(String[] args) {
			C c = new C();
			c.print(); // <--------  A를 찍을 것인지, B를 찍을 것인지 판단하기 애매하다.
	}
	
}
반응형