┝ 개발 언어/┎ JAVA
2/1 추상클래스
홍호나
2022. 3. 1. 22:17
이 글은 2019년 홍익대학교 자바 겨울 특강 수업을 메모한 것이다.
당시에는 에버노트에 메모해놨었기 때문에,
티스토리 블로그를 시작하면서 백업해둔다.
부모 자식에 있는 미완성 설계도.
자식 클래스에서 완성해서 사용한다.
부모 클래스에 있는 추상 메소드는 반드시 자식 클래스에서 오버라이딩해야한다. 반 드 시. 안 하면 에러난다.
package chapter7;
//부모 클래스에 있는 추상 메소드는 반드시 자식 클래스에서 오버라이딩해야한다. 반 드 시. 안 하면 에러난다.
//
//추상 클래스
//1. 클래스 = 완성형 설계도 / 추상 클래스 = 미완성 설계도
//2. 추상 메소드를 가진 클래스(=미완성 메소드를 가진 클래스)
//
//사용
//추상 클래스는 abstract 사용하여 선언
//1. 멤버 메소드로 추상 메소드 사용
//* 추상 메소드는 abstract를 사용하여 메소드 이름만 정의(내용x)
//* {} 대신에 ;로 문장의 끝 정의
//2. 멤버 변수, 멤버 메소드 모두 사용 가능
//3. 객체 생성 x
//4. 객체 생성하려면 상속한 후 추상 메소드를 오버라이딩 후 객체생성
//5. 추상 클래스 간에도 상속 가능. 상속된 모든 추상 메소드를 오버라이딩 해야함
abstract class car {
int speed;
int wheel;
String carname;
car() {
}
abstract void go();
abstract void stop();
}
class truck extends car {
truck() {
}
truck(String carname, int wheel, int speed) {
this.carname = carname;
this.wheel = wheel;
this.speed = speed;
}
@Override
void go() {
speed++;
System.out.println("speed: " + this.speed + "만큼 달려");
}
@Override
void stop() {
speed--;
System.out.println("speed: " + super.speed + "만큼 달려");
}
}
public class class_abstract {
public static void main(String[] args) {
// TODO Auto-generated method stub
truck mytruck = new truck("sorento", 4, 8);
mytruck.go();
mytruck.go();
mytruck.go();
mytruck.stop();
}
}