반응형
1. [조부모1] 🚢realization > Boat인터페이스
package realization;
public interface Boat {
//추상메소드
void navigate();
}
2. [조부모2] 🚗realization > Car인터페이스
package realization;
public interface Car {
//추상메소드
void run();
}
3. [부모] 🚢realization > Boat🚗Car인터페이스
package realization;
//인터페이스는 다른 인터페이스를 상속받아 작성 가능
//=> 단, extends 키워드로 상속 받으며 다중 상속 가능
public interface BoatCar extends Boat, Car{
//추상메소드
void floating();
}
4. [자식] 🚢realization > Boat🚗Car🔥Real클래스
package realization;
public class BoatCarReal implements BoatCar{
//조부모의 추상메소드 실체화하기
@Override
public void navigate() {System.out.println("바다를 향해하는 능력");}
//조부모의 추상메소드 실체화하기
@Override
public void run() {System.out.println("땅위를 달리는 능력");}
//부모의 추상메소드 실체화하기
@Override
public void floating() {System.out.println("공중에 떠 있는 능력");}
}
5. [실행] 🚢Boat🚗Car🔥RealApp 실행프로그램
package realization;
public class BoatCarRealApp {
public static void main(String[] args) {
//클래스가 상속받은 모든 인터페이스로 참조변수를 생성하여 자식클래스의 객체 저장 가능
//1.
//객체형성: Boat + Car + BoatCar + BoatCarReal
//BoatCarReal참조변수에 BoatCarReal객체 저장
BoatCarReal boatCarReal = new BoatCarReal();
boatCarReal.floating();
boatCarReal.navigate();
boatCarReal.run();
//2.
//객체형성: Boat + Car + BoatCar + BoatCarReal
//BoatCar참조변수에 BoatCar객체 저장
//(객체형변환시) BoatCarReal 이용가능
BoatCar boatCar = new BoatCarReal();
boatCar.floating();
boatCar.navigate();
boatCar.run();
//3.
//객체형성: Boat + Car + BoatCar + BoatCarReal
//Boat참조변수에 Boat객체 저장
//(객체형변환시) BoatCar , BoatCarReal 이용가능
Boat boat = new BoatCarReal();
boat.navigate();
((BoatCar)boat).run();
((BoatCar)boat).navigate();
((BoatCar)boat).floating();
((BoatCarReal)boat).run();
((BoatCarReal)boat).navigate();
((BoatCarReal)boat).floating();
((Car)boat).run();
//4.
//객체형성: Boat + Car + BoatCar + BoatCarReal
//Car참조변수에 Car객체 저장
//(객체형변환시) BoatCar , BoatCarReal 이용가능
Car car = new BoatCarReal();
car.run();
((BoatCar)car).navigate();
((BoatCar)car).run();
((BoatCar)car).floating();
((BoatCarReal)car).run();
((BoatCarReal)car).navigate();
((BoatCarReal)car).floating();
((Boat)car).navigate();
}
}
반응형
'java > realization' 카테고리의 다른 글
[realization] 6. 상수필드(Constant)와 열거형(Enum) (1) | 2024.06.11 |
---|---|
[realization] 5. 기본메소드를 포함한 인터페이스 (0) | 2024.06.11 |
[realization] 4. 결합도를 낮춰 유지보수의 효율성 높이는 방법 (1) | 2024.06.10 |
[realization] 2. 🦊WolfHumanApp (0) | 2024.06.09 |
[realization] 1. 인터페이스의 개념 (0) | 2024.06.09 |