https://print-blue.tistory.com/160
/*
* [문제]
* Vehicle 의 모든이 take() 를 정의하도록
* Vehicle type 을 abstrat 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. 추상 클래스 변경하고 추상 메소드 만들기
일반 클래스 앞에 abstract 붙이고, take()정의하도록 추상 메소드 정의
abstract class Vehicle {
private int number;
public Vehicle(int number) {
this.number = number;
}
public int getNumber() {
return this.number;
}
// abstract method
public abstract void take();
}
2. 자식 클래스 상속받기
3. 메소드 호출
package quiz02;
abstract class Vehicle {
private int number;
public Vehicle(int number) {
this.number = number;
}
public int getNumber() {
return this.number;
}
// abstract method
public abstract void take();
}
class Car extends Vehicle {
public Car(int number) {
super(number);
}
@Override
public void take() {
System.out.println("자동차 등록번호 : " + super.getNumber());
System.out.println("자동차가 고속도를 달립니다.");
}
}
class Yacht extends Vehicle {
public Yacht (int number) {
super(number);
}
@Override
public void take() {
System.out.println("요트 등록번호 : " + super.getNumber());
System.out.println("요트가 한강 위를 떠다닙니다.\n");
}
}
public class Ex06AbstraClass {
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]);
}
}
# 실행 결과
자동차 등록번호 : 1350
자동차가 고속도를 달립니다.
요트 등록번호 : 679111
요트가 한강 위를 떠다닙니다.
'Language > JAVA' 카테고리의 다른 글
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 예외 클래스 정의하기 (0) | 2024.04.22 |
---|---|
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 일반 클래스에서 인퍼페이스 로 변경하기 (0) | 2024.04.19 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 상속 받은 메소드 호출 (0) | 2024.04.19 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 추상 클래스와 추상 메소드 선언 후 상속 받기 (0) | 2024.04.18 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 추상 클래스와 추상 메소드 정의하기 (0) | 2024.04.18 |