Java로 배우는 객체 지향 프로그래밍 입문
Sani Yusuf
Lead Software Engineering Content Developer
// 추상 Car 클래스
abstract class Car {
// 추상 drive 메서드
abstract void drive();
// 코드 구현 없음
}
// Toyota 클래스는 Car를 상속
class Toyota extends Car {
}
// Tesla 클래스는 Car를 상속
class Tesla extends Car {
}
// Lamborghini 클래스는 Car를 상속
class Lamborghini extends Car {
}
@Override 키워드는 메서드의 사용자 정의 구현을 가능하게 합니다 // 추상 Car 클래스
abstract class Car {
// 추상 drive 메서드
abstract void drive();
// 코드 구현 없음
}
class Toyota extends Car {
@Override // 오버라이드에 사용되는 키워드
void drive() {
// Toyota 전용 구현 코드
}
}
class Tesla extends Car {
@Override
void drive() {
// Tesla 전용 구현 코드
}
}
class Lamborghini extends Car {
@Override
void drive() {
// Lamborghini 전용 구현 코드
}
}
// ElectricCar 인터페이스
interface ElectricCar {
abstract void charge();
// 코드 구현 없음
}
@Override 사용을 권장합니다
// Tesla 클래스가
// ElectricCar 인터페이스 구현
class Tesla implements ElectricCar {
// charge 메서드는 반드시 구현해야 함
@Override
void charge(){
// Tesla 전용 charge 구현
// 인터페이스로 선택적 상속
}
}
// Toyota 클래스 class Toyota { void drive() { // drive 메서드 첫 번째 구현 }// 오버로딩된 drive 메서드 void drive(int topSpeed) { // 두 번째 구현 } }
// Honda 클래스 class Honda { // 첫 번째 생성자 public Honda(String color, String model) { }// 두 번째 생성자 public Honda(String color, String model, String licensePlate) { } }
public class Main { public static void main( String[] args) { // 첫 번째 생성자 사용 Honda hondaOne = new Honda("Red", "Accord");// 두 번째 생성자 사용 Honda hondaTwo = new Honda("Red", "Civic", "FST-1977"); } }
Java로 배우는 객체 지향 프로그래밍 입문