자바의 다중 상속이 안되는 이유 : 다이아몬드 문제 (다중상속 받았을 때 모호성->안정성 중시)
(인터페이스의 경우 다중상속이 가능)
여러 인터페이스 구현 (오픈마켓에서 손님이 판매자이자 구매자가 될 수 있는 상황이라 생각)
package Basic_Grammar.chap3_OOP.ch11;
public class CustomerTest {
public static void main(String[] args) {
Customer customer=new Customer();
customer.buy();
customer.sell();
customer.order();
customer.hello();
//upcasting
Buy buyer=customer;
buyer.buy();
buyer.order();
Sell seller=customer;
seller.sell();
seller.order();
}
}
package Basic_Grammar.chap3_OOP.ch11;
public class Customer implements Buy, Sell{
@Override
public void buy() {
System.out.println("cutomer buy");
}
//모호한 같은 이름의 메서드 재정의 해주어야한다.
@Override
public void order() {
Buy.super.order();
Sell.super.order();
}
@Override
public void sell() {
System.out.println("customer sell");
}
public void hello(){
System.out.println("Hello~~");
}
}
package Basic_Grammar.chap3_OOP.ch11;
public interface Buy {
void buy();
default void order(){
System.out.println("buy order");
}
}
package Basic_Grammar.chap3_OOP.ch11;
public interface Sell {
void sell();
default void order(){
System.out.println("sell order");
}
}
'JAVA > Java2021-2' 카테고리의 다른 글
클래스 상속과 인터페이스 구현 함께 사용 (0) | 2021.11.11 |
---|---|
interface 여러가지 추가된 요소 (default 메서드, 정적 메서드, private 메서드) (0) | 2021.11.11 |
인터페이스를 활용한 다형성 구현(dao 구현하기) (0) | 2021.11.11 |
인터페이스를 왜 사용하는가? (0) | 2021.11.11 |
인터페이스 (0) | 2021.11.11 |