https://print-blue.tistory.com/160
https://print-blue.tistory.com/161
/*
* [문제]
* Vehicle 의 모든이 take() 를 정의하도록
* Vehicle type 을 interface class 로 변경하시오.
* 추상화
*/
package quiz01;
class Vehicle {
private int number;
public Vehicle(int number) {
this.number = number;
}
}
public class Ex06 {
public static void info(Vehicle vehicle) {
// [문제] 메소드 호출
vehicle.drive();
vehicle.sail();
}
public static void main(String[] args) {
Vehicle[] myVehicle = new Vehicle[2];
myVehicle[0] = new Car(1350);
info(myVehicle[0]);
myVehicle[1] = new Yacht(679111);
info(myVehicle[1]);
}
}
1. 인터페이스로 변경하고 추상 메소드 만들기
인터페이스는 미완성된 멤버, 메소드이기 때문에 인스턴스 생성을 못하고 heap영역에 저장되지 않는다
그래서 생성자를 만들 수 없음
또 필드는 무조건 상수로외에는 받지 않음 -> 자식쪽으로 넘겨주거나 다른 부모를 만들면됨
2. 자식 클래스 상속받기
3. 메소드 호출
/*
* [문제]
* Vehicle 의 모든이 take() 를 정의하도록
* Vehicle type 을 interface 로 변경하시오.
*/
package quiz03;
interface Vehicle {
// public static final int Number = 0;
public abstract void take();
}
class Car implements Vehicle {
private int number;
public Car (int number) {
this.number = number;
}
@Override
public void take() {
System.out.println("자동차 등록번호 : " + this.number);
System.out.println("자동차가 고속도를 달립니다.");
}
}
class Yacht implements Vehicle {
private int number;
public Yacht (int number) {
this.number = number;
}
@Override
public void take() {
System.out.println("요트 등록번호 : " + this.number);
System.out.println("요트가 한강 위를 떠다닙니다.\n");
}
}
public class Ex06Interface {
public static void info(Vehicle vehicle) {
vehicle.take();
}
public static void main(String[] args) {
Vehicle[] myVehicle = new Vehicle[2];
myVehicle[0] = new Car(1350);
myVehicle[1] = new Yacht(679111);
info(myVehicle[0]);
info(myVehicle[1]);
// Vehicle[] myVehicle = new Vehicle[] {new Car(1350), new Yacht(679111)};
// for (Vehicle idx: myVehicle) {
// idx.take();
// }
}
}
'Language > JAVA' 카테고리의 다른 글
JAVA Calendar 클래스 개념과 예제 (0) | 2024.04.23 |
---|---|
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 예외 클래스 정의하기 (0) | 2024.04.22 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 일반 클래스에서 추상 클래스로 변경하기 (0) | 2024.04.19 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 상속 받은 메소드 호출 (0) | 2024.04.19 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 추상 클래스와 추상 메소드 선언 후 상속 받기 (0) | 2024.04.18 |